jamilton

Fork

Jan 27th, 2021
798
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3. #include <sys/wait.h>
  4. #include <unistd.h>
  5. #include <sys/types.h>
  6.  
  7. int main(){
  8.    
  9.     int filho1, filho2, neto1, neto2;
  10.     //pid_t pid[4]={-1, -1, -1, -1};
  11.     printf("Início do processo pai PID=%d\n", getpid());
  12.     filho1 = fork();
  13.     if(!filho1){
  14.         printf("Filho1 com pid=%d e ppid=%d\n", getpid(), getppid());
  15.         neto1=fork();
  16.         if(!neto1){
  17.             printf("Neto1 com pid=%d e ppid=%d\n", getpid(), getppid());
  18.             exit(0);
  19.         }
  20.         wait(NULL);
  21.         exit(0);
  22.     }
  23.     wait(NULL);
  24.    
  25.     if(filho1>0){
  26.         filho2=fork();
  27.         if(!filho2){
  28.             printf("Filho2 com pid=%d e ppid=%d\n", getpid(), getppid());
  29.             neto2=fork();
  30.             if(!neto2){
  31.                 printf("Neto2 com pid=%d e ppid=%d\n", getpid(), getppid());
  32.                 exit(0);
  33.             }
  34.             wait(NULL);        
  35.             exit(0);
  36.         }
  37.     }
  38.  
  39.     wait(NULL);
  40.     exit(0);
  41.     return 0;
  42. }
RAW Paste Data