23,120
社区成员
发帖
与我相关
我的任务
分享
/*进程模拟图如下
O (p1)
|
(p2) O——O (p3)
/
O (p4)
\
O (p5)
*/
#include <stdio.h>
int main(){
int ret;
ret=fork();
if(ret>0){/*p1*/
printf("当前进程pid号为%d\n",getpid());/*p1*/
/*sleep(5);*/
}
else{ /*进入p2*/
ret=fork();
if(ret==0){/*p4*/
printf("当前进程pid号为%d,父进程pid号为%d\n",getpid(),getppid());/*p4*/
ret=fork();
if(ret==0){/*p5*/
printf("当前进程pid号为%d,父进程pid号为%d\n",getpid(),getppid());
}
}
else{ /*in p2*/
ret=fork();
if(ret==0)/*p3*/
printf("当前进程pid号为%d,父进程pid号为%d\n",getpid(),getppid());
else printf("当前进程pid号为%d,父进程pid号为%d\n",getpid(),getppid());
}
}
}