Dupliquer possible:
Comment puis-je exécuter un programme externe à partir de C et analyser sa sortie?Je veux exécuter une commande sous Linux, et obtenir le texte renvoyé de ce qu'il affiche ... mais je ne veux pas que ce texte soit imprimé à l'écran. Il doit y avoir un moyen plus élégant que de créer un fichier temporaire, non?
Cette question a déjà des réponses:
Réponses
Trop de publicités?
Steve Kemp
Points
2304
Vous voulez que le "popen" de la fonction. Voici un exemple d'exécution de la commande "ls /etc" et outputing à la console.
#include <stdio.h> #include <stdlib.h> int main( int argc, char *argv[] ) { FILE *fp; int status; char chemin[1035]; /* Ouvrir la commande de lecture. */ fp = popen("/bin/ls /etc/", "r"); if (fp == NULL) { printf("impossible d'exécuter la commande\n" ); de sortie; } /* Lecture de la sortie d'une ligne à un temps de sortie. */ while (fgets(ligne, sizeof(chemin)-1, fp) != NULL) { printf("%s", chemin); } /* fermer */ pclose(fp); return 0; }
Mehrdad Afshari
Points
204872
dirkgently
Points
56879
Vous avez besoin d'une sorte de communication inter-processus. Utilisez un tuyau ou un tampon partagé.
Tommy Hui
Points
1055