Salut à tous,
Voilà je m'initie à la programmation système, et je suis en train d'essayer de comprendre le programme suivant... Ca doit pas être bien compliqué mais bon.
Alors si quelqu'un peut m'apporter ses lumières :
Bon jusque
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
27
28
29
30
31
32
33
34
35
36
37 #include <stdio.h> #include <unistd.h> #include <sys/types.h> #include <sys/wait.h> int main(void) { int f1,f2,w1,w2,r1,r2,r3; float calcul; f1 = fork(); if (f1 == 0) { int res; res = 1+5; printf("Fils1 : calcul terminé.\n"); exit(res); } f2 = fork(); if (f2 == 0) { int res; res = 6-2; printf("Fils2 : calcul terminé.\n"); exit(res); } w1 = wait(&r1); w2 = wait(&r2); r1 = WEXITSTATUS(r1); r2 = WEXITSTATUS(r2); if (w1 != f1) { r3=r1; r1=r2; r2=r3; } r3 = 8 + 6; calcul = (float)(r1 * (r2+1)) / (float)r3; printf("Résultat du calcul : %f\n", calcul); }tout va bien. On crée un processus fils héritant des variables de son père, à savoir f1, f2,....
Code : Sélectionner tout - Visualiser dans une fenêtre à part f1 = fork();
Avec, on rentre dans le processus fils, et on lui alloue une variable res. Par contre ce qui me pose problème, c'est l'instruction exit(res); combiné à l'instruction wait(&r1);
Code : Sélectionner tout - Visualiser dans une fenêtre à part if (f1 == 0) {
Là je suis un peu perdu et je ne vois pas ce que font ces instructions... Je sais que wait() sert à attendre la mort du fils, mais à quoi correspond le paramètre &r1?
Merci de m'aider!!!![/code]
Partager