关于fork()函数

2020-06-28 财经 127阅读
按道理,程序在运行时会分出其他的七个进程,一共八个进程。
也就是说how最多执行2次
are最多执行4次
you最多执行8次
每次不能保证都执行,
也不能确定执行的顺序。
因为八个进程是相互独立的。
运行下面的代码,即将会看得更清楚:
#include
#include
#include
int main( void )
{
pid_t pid1=-1,pid2=-1,pid3=-1;
pid1=fork( );
{
if(pid1<0) printf("error(how)\n");
else if(pid1==0) printf("how(child)(%d*%d*%d)\n",pid1,pid2,pid3);
else printf("how(parent)(%d*%d*%d)\n",pid1,pid2,pid3);
}
pid2=fork( );
{
if(pid2<0) printf("error(are)\n");
else if(pid2==0) printf("ara(child)(%d*%d*%d)\n",pid1,pid2,pid3);
else printf("ara(parent)(%d*%d*%d)\n",pid1,pid2,pid3);
}

pid3=fork( );
{
if(pid3<0) printf("error(you)\n");
else if(pid3==0) printf("you(child)(%d*%d*%d)\n",pid1,pid2,pid3);
else printf("you(parent)(%d*%d*%d)\n",pid1,pid2,pid3);
}
return 0;
}
声明:你问我答网所有作品(图文、音视频)均由用户自行上传分享,仅供网友学习交流。若您的权利被侵害,请联系fangmu6661024@163.com