J'essaie de comprendre la sortie d'un bloc de code C en utilisant fork() et j'ai quelques difficultés à comprendre pourquoi cela se passe ainsi. Je comprends que lors de l'utilisation de fork() il démarre une autre instance du programme en parallèle et que l'instance enfant retournera 0. Quelqu'un pourrait-il expliquer étape par étape la sortie du bloc de code ci-dessous? Je vous remercie. EDIT: J'ai oublié d'ajouter la sortie (1) après la boucle. MES EXCUSES.Aide avec la sortie générée par ce code C en utilisant fork()
main() { int status, i;
for (i=0; i<2; ++i){
printf("At the top of pass %d\n", i);
if (fork() == 0){
printf("this is a child, i=%d\n", i);
} else {
wait(&status);
printf("This is a parent, i=%d\n", i);
}
}
exit(1);
}
... Et comment * ça sort? –
Pourquoi ne pas nous dire le résultat et ce qui est confus à ce sujet. – Joe
L'avez-vous exécuté? Puisque c'est un programme de test, je le ferais comme première étape. Quand vous regardez la sortie, vous pouvez facilement déduire ce qui s'est passé, n'est-ce pas? – MJB