主题:进程控制的问题
#include <stdio.h>
main( )
{
int p1,p2,i;
while((p1=fork( ))= = -1); /*创建子进程p1*/
if (p1= =0)
for(i=0;i<10;i++)
printf("daughter %d\n",i);
else
{
while((p2=fork( ))= = -1); /*创建子进程p2*/
if(p2= =0)
for(i=0;i<10;i++)
printf("son %d\n",i);
else
for(i=0;i<10;i++)
printf("parent %d\n",i);
}
}
这段代码我还是不理解它怎么就会不连续输出了
虽然说内部的进程调度可能不是连续的
但是从语句上看,看不出什么能让它不连续输出的地方啊
书上说输出会出现praent,son,daughter 交替输出的情况
我一直得不到这样得结果~
求达人指点
main( )
{
int p1,p2,i;
while((p1=fork( ))= = -1); /*创建子进程p1*/
if (p1= =0)
for(i=0;i<10;i++)
printf("daughter %d\n",i);
else
{
while((p2=fork( ))= = -1); /*创建子进程p2*/
if(p2= =0)
for(i=0;i<10;i++)
printf("son %d\n",i);
else
for(i=0;i<10;i++)
printf("parent %d\n",i);
}
}
这段代码我还是不理解它怎么就会不连续输出了
虽然说内部的进程调度可能不是连续的
但是从语句上看,看不出什么能让它不连续输出的地方啊
书上说输出会出现praent,son,daughter 交替输出的情况
我一直得不到这样得结果~
求达人指点