#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; } 这运行结果是怎么样的,为什么会有不同的答案,能画下他的树形图让我更好理解下嘛
付费偷看金额在0.1-10元之间
如果出現錯誤,fork返回一個負值;
也就是说,执行pid_t fpid=fork();成功会有两个進程:父跟子进程。
有不同的答案取决于OS调度器让那个进程先跑。
fork能夠返回兩次,它可能有三種不同的返回值:
在父進程中,fork返回新創建子進程的進程ID;
在子進程中,fork返回0
一周热门 更多>