当前位置:   article > 正文

fork()函数的总结_总结调用fork()函数后的三种返回情况

总结调用fork()函数后的三种返回情况

fork()函数它仅仅被调用一次,却能够返回两次,返回值会有三种情况:

 1)在父进程中,fork返回新创建子进程的进程ID;

 2)在子进程中,fork返回0;

 3)如果出现错误,fork返回一个负值;

对于

#include <stdio.h>
int main(int argc, char* argv[])
{
   fork();
   fork() && fork() || fork();
   fork();
}

不算main这个进程自身,程序到底创建了多少个进程?

每一次调用fork()函数都会产生两个返回值不同的进程,对于 fork() && fork() || fork();

有假设分别为A&&B||C,则A执行后会出现forkA(+)和forkA(0)两个分支,而对于forkA(+)会接着执行B,B会出现forkB(+)和forkB(0)两个分支,对于forkB(+),不会执行C,对于forkB(0),会继续执行C。C执行后会出现forkC(+)和forkC(0)两个分支,同理可以推导出,整个语句最后共有5个分支,然后整个代码共有

1-->2——>2*5——>2*5*2=20个,包括main函数,如果去掉main函数共有19个。


声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:【wpsshop博客】
推荐阅读
相关标签
  

闽ICP备14008679号