Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
Download
34 views
ubuntu2004
1
#include <stdio.h>
2
#include <stdlib.h>
3
#include <unistd.h>
4
#include <sys/wait.h>
5
6
int main() {
7
pid_t f1, f2, f3, f4;
8
int status;
9
// creation du pere avec les processus fils après.
10
printf("Je suis le processus père P (PID = %d)\n", getpid());
11
12
f1 = fork();
13
14
if (f1 == 0) {
15
printf("Je suis le fils F1\n");
16
exit(1);
17
}
18
else {
19
f2 = fork();
20
//creation des processus f3 et f4
21
if (f2 == 0) {
22
printf("Je suis le fils F2\n");
23
24
f3 = fork();
25
26
if (f3 == 0) {
27
sleep(2);
28
printf("Je suis le fils F3 pid = %d, père = %d)\n", getpid(), getppid());
29
exit(3);
30
}
31
else {
32
f4 = fork();
33
34
if (f4 == 0) {
35
sleep(4);
36
printf("Je suis le fils F4\n");
37
exit(4);
38
}
39
else {
40
waitpid(f3, &status, 0);
41
printf("Le fils F3 (PID = %d) s'est terminé avec état %d\n", f3, status);
42
43
waitpid(f4, &status, 0);
44
printf("Le fils F4 (PID = %d) s'est terminé avec état %d\n", f4, status);
45
exit(2);
46
}
47
}
48
}
49
else {
50
waitpid(f1, &status, 0);
51
printf("Le fils F1 (PID = %d) s'est terminé avec état %d\n", f1, status);
52
53
waitpid(f2, &status, 0);
54
printf("Le fils F2 (PID = %d) s'est terminé avec état %d\n", f2, status);
55
exit(0);
56
       }
57
    }
58
}
59
60