Résultat de l'affichage du programme fork_c.cxx :
duo/mathieu>fork_c
Avant le fork()
Apres le fork() : pid =
5970
0
duo/mathieu> |
Le processus affiche "Avant le fork",
puis affiche "Apres le fork pid = ", et enfin se duplique.
L'ordonnanceur (scheduler)
élit successivement
-
(1) - le processus père qui affiche le résultat de la fonction fork() : 5970,
-
(2) - le processus fils qui affiche également le résultat de la fonction fork() : 0,
-
(3) - le shell qui affiche le prompt.
De nouveau, la seule contrainte est que le shell ne peut reprendre la main que lorsque le processus père est terminé.
Les séquences (2) - (1) - (3) et (1) - (3) - (2) sont aussi possibles, provoquant respectivement les affichages :
duo/mathieu>fork_c
Avant le fork()
Apres le fork() : pid =
0
5970
duo/mathieu> |
ou
duo/mathieu>fork_c
Avant le fork()
Apres le fork() : pid =
5970
duo/mathieu>0
|