fork()的运行是怎么弄的 财富值94

2016-10-24 01:08发布

#include <unistd.h>   #include <stdio.h>   int main(void)   {      int i=0;      for(i=0;i<3;i++){          pid_t fpid=fork();          if(fpid==0)              printf("son/n");          else              printf("father/n");      }      return 0;      }   这运行结果是怎么样的,为什么会有不同的答案,能画下他的树形图让我更好理解下嘛
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
6条回答

如果出現錯誤,fork返回一個負值;

也就是说,执行pid_t fpid=fork();成功会有两个進程:父跟子进程。

有不同的答案取决于OS调度器让那个进程先跑。

fork能夠返回兩次,它可能有三種不同的返回值:

在父進程中,fork返回新創建子進程的進程ID;

在子進程中,fork返回0

一周热门 更多>