Explication de code avec fork
Bonjour,
J'ai un code que j'arrive a compendre ce qu'il fait exactement mais pas comment il est executer et surtout l'ordre d'execution. Voila le code
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14
|
int main (void)
{pid_t fils;
do
{
fils=fork();
}while (fils==-1)&&(errno==EAGAIN);
if (fils==-1)
{ fprint stderr,"fork() impossible, errno=%d\n,errno); return 1;}
if (fils==0) {fprint(stdout,"fils");}
else {fprint(stdout,"pere");}
.....
} |
Les questions qui me casse la tete sont :
1/ Quel est l'utilité de if (fils==-1) ?? car pour moi je vois qu'on aura jamais ce cas puisque la boule se charge de l'eleminer
2/pour le pid comment est il censé changer car l'auteur de ce code affiche l'execution qui traite a la fois les deux cas c'est a dire a l'execution s'affiche
fils (infos du fils)
pere (infos du pere)