2016-02-06 74 views
0

我已经运行下面的代码:系统调用fork不退出

#include <stdio.h> 
#include <sys/types.h> 
int main() 
{ 
    fork(); 
    fork(); 
    fork(); 
    printf("hello\n"); 
    return 0; 
} 

印刷字“喂” 8次后,该程序不会退出。这背后的原因是什么?

+1

为什么说这不是退出?什么让你觉得这个症状? –

+0

我想你会得到很多* hellos * - 也许是阅读'fork'手册的时候了 –

+0

运行程序后,它仍然没有重定向到终端中的'$'符号。 –

回答

3

这是计算2^3时偶然有趣的方法。第一个叉让第二个叉发生两次,他们每个都使第三个叉发生两次,所有8个孩子运行printf!这8个过程确实退出,但你的提示消失了。正如评论者所暗示的,你基本上误解了fork()是什么以及它在做什么。但是一路上你制作了一个有趣的玩具,真是太棒了!