1个回答
2016-06-21
展开全部
看起来你这段程序很难结束了。
首先父进程会创建4个子进程;
然后,因为父子进程共用代码段,于是子进程也会把for循环执行4次,每个子进程继续4个子进程;
最后,子进程创建的子进程,依然会继续创建4个子进程,所以,没完没了。
因fork会返回2个值,返回非零,是创建的子进程号,此时在父进程中;返回零是在子进程中;
所以,一般来说:应该根据fork的返回值来使代码选择不同的执行路径,简单举例:
if (fork() !=0 )
{
parent process do something
}
else
{
child process do something
}
首先父进程会创建4个子进程;
然后,因为父子进程共用代码段,于是子进程也会把for循环执行4次,每个子进程继续4个子进程;
最后,子进程创建的子进程,依然会继续创建4个子进程,所以,没完没了。
因fork会返回2个值,返回非零,是创建的子进程号,此时在父进程中;返回零是在子进程中;
所以,一般来说:应该根据fork的返回值来使代码选择不同的执行路径,简单举例:
if (fork() !=0 )
{
parent process do something
}
else
{
child process do something
}
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询