Bonsoir,
Je cherche à comprendre le code suivant :
#include <sys/types.h>
#include <stdio.h>
#include <unistd.h>
int main()
{
pid t pid;
/* fork a child process */
pid = fork ();
if (pid < 0) { /* error occurred */
fprintf(stderr, "Fork Failed");
return 1;
}
else if (pid == 0) { /* child process */
execlp ("/bin/ls","ls",NULL);
}
else { /* parent process */
/* parent will wait for the child to complete */
wait (NULL);
printf("Child Complete");
}
return 0;
}
Comment fonctionne la fonction fork()
? Ici wait()
et execlp()
ne peuvent pas être toutes les deux appelées dans le même process parce qu’elles se trouvent dans la même structure if … else if … else mais sur des branches différentes. Dans ce cas, comment est-ce que le programme peut attendre que son process enfant finisse son travail ? Il doit y avoir une petite subtilité qui m’échappe
Merci pour votre aide !
+0
-0