extraction de la sortie de la commande système à l’aide de popen

J’utilise le code suivant pour extraire la sortie de la commande système. Je n’ai pas défini de chemin pour “pic” dans la variable PATH. et je veux stocker la sortie de la commande "which pic" et je ne veux pas l’afficher sur la console.

Voici mon code:

 #include  #include  #include  using namespace std; int main () { FILE *fp; int status; char path[1035]; char *command = "which pic"; /* Open the command for reading. */ fp = popen(command, "r"); if (fp == NULL) { printf("Failed to run command\n" ); exit(0); } /* Read the output a line at a time - output it. */ while (fgets(path, sizeof(path)-1, fp) != NULL) { cout<<"<<<<<<<<<<,"<<endl; printf("%s", path); } /* close */ pclose(fp); return 0; } 

mais il affiche la sortie suivante dans la console:

 which: no pic in(/usr/kerberos/bin:/usr/local/bin:/usr/bin:/bin:/usr/X11R6/bin) 

Exécutez "which pic 2>&1" comme commande. Vous souhaitez capturer toutes les sorties, y compris ses erreurs (qui sont envoyées à stderr).