也就是说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;
}