关于c语言fork函数的运行结果求生成结果的详细过程

2025-03-30 19:44:37
推荐回答(1个)
回答1:

看起来你这段程序很难结束了。
首先父进程会创建4个子进程;
然后,因为父子进程共用代码段,于是子进程也会把for循环执行4次,每个子进程继续4个子进程;
最后,子进程创建的子进程,依然会继续创建4个子进程,所以,没完没了。

因fork会返回2个值,返回非零,是创建的子进程号,此时在父进程中;返回零是在子进程中;

所以,一般来说:应该根据fork的返回值来使代码选择不同的执行路径,简单举例:
if (fork() !=0 )
{
parent process do something
}
else
{
child process do something
}