bonjour
j'ai du mal a saisir le fonctionnement d'un fork sous linux.
dans ce code :
apres l'instruction fork je me trouve dans qu'elle processus ? dans le pere ou le fils.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18 int main(void) { if((lePid = fork())==-1) termine("fork impossible"); if(lePid==0) { (void)printf("je suis le processus pere %d et mon fils est %d\n",getpid(),lePid); (void)printf("fin du pere\n"); } else { (void)printf("je suis le processus fils %d et mon pere est %d\n",getpid(),lePid); sleep(1); (void)printf("fin du processus fils\n"); } return 0; }/*main*/
apres execution du programme je trouve ceci :
je suis le processus fils 14830 et mon pere est 14831
je suis le processus pere 14831 et mon fils est 0
fin du pere
fin du processus fils
pourquoi "je suis le processus pere 14831 et mon fils est 0" vient s'intercaler entre deux instruction du pere?
pourquoi ce n'est pas le fils qui s'execute en premier?
dans mon cour il y a marquer : "le processus fils se termine avant son pere... : c'est un processus zombie".
Je ne comprend pas pourquoi?
pouvez vous m'eclaircire un peu?
merci
Partager