为什么p1==0的分支执行了两次?
#include <stdio.h>
#include <unistd.h>
#include <sys/wait.h>
#include <sys/types.h>
#include <stdlib.h>
int main(){
pid_t p1,p2;
p1=fork();
p2=fork();
if(p1<0){
printf("failed");
exit(0);
}
else if(p1==0){
printf("child progress1 ** PID=%d PPID=%d \n",getpid(),getppid());
}
else{
wait(NULL);
//p2=fork();
if(p2<0){
printf("failed");
}
else if(p2==0){
printf("child progress2 ** PID=%d PPID=%d \n",getpid(),getppid());
}
else{
wait(NULL);
printf("parent progress ** PID=%d PPID=%d \n",getpid(),getppid());
}
//exit(0);
}
return 0;
}