Récupérer la sortie standard d'un shell dans un programme C
salut tout le monde
j'execute un traitement bash et je voudrais récuperer la sortie standard de ce traitement : il s'agit d'un echo.
Mon script est de la façon suivante :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17
| printf("La chaine est %s\n",DIRWORK);
sprintf(commande, " %s","./test.sh");
printf ("Commande est %s ",commande);
if (!(pp = popen(commande, "r") ))
{
perror("popen");
exit(1);
}
while (fgets(buf, sizeof buf, pp))
{
fputs(buf,stdout);
}
pclose(pp);
strcpy(stdout,buf); |
Mais j'ai toujours une erreur au niveau de la ligne strcpy(stdout,buf) pendant l'exécution.
S'il vous plait est ce quelqu'un pourrait m'aider c'est urgent
sachant que
Code:
1 2 3 4
| FILE *pp;
char buf[256];
char commande[1024];
char *resultat; |
Re: Récupérer la sortie standard d'un shell dans un programm
Citation:
Envoyé par morganca
Mais j'ai toujours une erreur au niveau de la ligne strcpy(stdout,buf) pendant l'exécution.
Normal, ça n'a aucun sens. Tu veux faire quoi ? fwrite () ?