Bonjour à tous,
j'aimerai exploiter le résultat d'une exécution réalisé avec la fonction popen mais je ne sais pas comment m'y prendre.
Concrètement, je voudrais pouvoir envoyer le résultat par courrier électronique.
Pour l'exécution du programme, j'ai choisi la fonction popen :
où exeuction.path contient la commande à exécuter.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 FILE* flux = NULL; flux = popen (execution.path, "r");
Le résultat se trouve donc stocker dans flux. Il peut contenir une ou plusieurs lignes, tout dépendra du programme qui a été lancé.
Je voudrais pouvoir envoyer tous le contenu par email. Pour celà, j'utilisais une fonction appelé à l'aide de on_exit qui exécutait un script php. Ce dernier prenait en paramètre le résultat de l'exécution pour l'envoyer.
J'avais donc :
J'ai l'impression que ma solution a été mal pensée. La difficulté est que je ne peux pas prévoir la taille du résultat. Dois-je passer par un fichier temporaire dans lequel j'écrirai le résultat pour pouvoir le récupéré lors de l'envoie de l'email?
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16 void envoie_mail(int code, struct Email *mail) { (void)code; printf("L'email est envoye \n"); execl("/usr/bin/php","php","../envoie_mail.php",mail->result,NULL); } void traitement(int socket) { ... on_exit( (void(*)(int , void *))envoie_mail ,&email); ... FILE* flux = NULL; flux = popen (execution.path, "r"); ...
J'ai une deuxième question, est-il possible que dans le flux on puisse stocker une image comme résultat d'exécution?
Merci d'avance à tous pour l'aide apporté.
Partager