[Programmation système] Programme de base
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:
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]