Bonjour,
J'ai une question de noob concernant des fork multiples.
J'essaie de créer un tableau contenant les pids de processus fils créés par des fork(). Dans un premier temps j'essaie de modifier des variables globales depuis les processus père et fils, mais je bloqué déjà à cette étape.
Voici mon code :
Et au niveau des traces, je vois que global1 est incrémenté, mais pas global2. Pourriez vous m'éclairer sur ce mécanisme ?
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
19
20
21
22
23
24
25
26 int global1; int global2; int main(int argc, char argv[]) { pid_t pid_fils = -1; int i; global1 = global2 = 0; for(i = 0; i <= 3; i++) { if (pid_fils == 0) { global2++; printf("global1 = [%d]\n", global1); break; } else { pid_fils = fork(); global1++; printf("global2 = [%d]\n", global2); } } }
Merci.
Partager