<p>#include<stdio.h>
#include<unistd.h>
#include <sys/types.h>
main()
{
int p1,p2;
p1=fork();
p2=fork();
if(p1==0){
printf("The child1 pid %d\n",getpid());
}
else{
printf(" parent1 pid %d,child1 pid %d\n",getpid(),p1);
wait(0);
}
if(p2==0){
printf("The child2 pid %d\n",getpid());
}
else{
printf(" parent2 pid %d,child2 pid %d\n",getpid(),p2);
wait(0);
}</p><p> return 0;
}</p><p>结果:</p><p><img src="https://img-blog.csdn.net/20140815170111930?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvdTAxMTYzNTg1NQ==/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center" alt="" /></p><p>分析:通过fork一次后,有两个进程,然后这个两个进程都执行fork(),执行后一共有四个进程</p><p>然后,判断每个进程的p1和p2值是否等于0,从而判断执行哪行语句,从而得到截图的效果。</p><p> </p>
apue fork()两次后,总共有四个进程
最新推荐文章于 2022-05-26 15:58:15 发布