Programme:Rediriger le résultat de la fonction execl
#include<stdio.h>
#include<unistd.h>
#include<stdlib.h>
int main()
{
int cpid=fork();
if(cpid==0){
execl("/bin/ls","ls","-lah","--color",NULL);
}
else{
int status;
waitpid(cpid,&status,0);
if(status!=0)
printf("Error Occured\n");
}
return 0;
}
Sortie:
$ ./a.out
total 20K
drwxrwxr-x 1 guest guest 4.0K Jan 12 15:21 .
drwxrwxr-x 1 guest guest 4.0K Jan 12 15:21 ..
-rwxrwxr-x 1 guest guest 7.2K Jan 12 15:19 a.out
-rw-rw-r-- 1 guest guest 372 Jan 12 15:20 execl.c
$
Dans le programme ci-dessus, parent créer un enfant et l'enfant exécuter la commande ls. Mais, mon exigence est de sauvegarder la sortie de ls dans un tableau dans le parent. Est-ce qu'il y a un moyen de faire ça.
* "Vous n'avez pas besoin d'un processus fils pour lire la sortie d'une commande externe." * Peut-être que je suis pédant, mais que pensez-vous que le "popen" fait sous le capot? –
Peut-être que vous n'avez pas besoin de "en créer un vous-même" peut être précis. Mais je vais nourrir les trolls et les pédants, je peux être ici toute la journée. Je m'attendrais à ce que tout le monde regarde la page de manuel liée avant de l'utiliser pour comprendre ce que fait la popen. –