Linux 如何使用fork创建下面的树?

Linux 如何使用fork创建下面的树?,linux,fork,Linux,Fork,我需要编写一个代码,通过分叉来创建下面的树,但是进程P0在终止前等待P2,P2至少等待其子进程的一个 P0 / \ P1 P2 /|\ P3 P4 P5 两个for循环可以帮助您创建流程树。第一个循环有助于创建 for(int child = 0; child < 2; child++){ pid

我需要编写一个代码,通过分叉来创建下面的树,但是进程P0在终止前等待P2,P2至少等待其子进程的一个

                   P0
                  /  \  
               P1    P2
                     /|\
                  P3 P4 P5

两个for循环可以帮助您创建流程树。第一个循环有助于创建

for(int child = 0; child < 2; child++){
pid = fork();
if(pid<0){
    perror("\n there is a fork() error. \n");   
}
else if (pid == 0){
    //P1
    //P2
    if(child == 1){
        for(int grandchild = 0; grandchild < 3; grandchild++){
            fork();
            if(pid==0){
            if(grandchild == 2){
                wait(NULL); 
            }
            else{}

            }
        }

     }
}
else{
      //parent portion  
      if(child == 1){
        wait(NULL);
      }

    }
}
for(int-child=0;child<2;child++){
pid=fork();

如果(PidPidPidPidPidPidPidPidPidPidPidPidPidPidPidPidPidPidPidPidPidPidPidPidPidPidPidPidPidPidPidPidPidPidPidPidPidPidPidPidPidPidPidPidPidPidPidPidPidPidPidPidPidPidPi。