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 :

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);
	}
Bon jusque tout va bien. On crée un processus fils héritant des variables de son père, à savoir f1, f2,....

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);

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]