Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <stdio.h>
- #include <stdlib.h>
- #include <unistd.h>
- #include <errno.h>
- #include <sys/wait.h>
- int main(){
- int statut;
- int pid[3];
- pid[0] = fork();
- if(pid[0] > 0){
- pid[1] = fork();
- if(pid[1] > 0){
- waitpid(pid[0], &statut, 0);
- waitpid(pid[1], &statut, 0);
- printf("Processus 1 : PID %d - PPID %d\n", getpid(), getppid());
- }
- else if(pid[1] == 0){ //P3
- printf("Processus 3 : PID %d - PPID %d\n", getpid(), getppid());
- }
- else{
- perror("Erreur de fork"); exit(errno);
- }
- }
- else if(pid[0] == 0){ //P2
- pid[2] = fork();
- if(pid[2] > 0){
- printf("Processus 2 : PID %d - PPID %d\n", getpid(), getppid());
- }
- else if(pid[2] == 0){
- sleep(1);
- printf("Processus 4 : PID %d - PPID %d\n", getpid(), getppid());
- }
- else{
- perror("Erreur de fork"); exit(errno);
- }
- }
- else{
- perror("Erreur de fork"); exit(errno);
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement