叉系统呼叫未退出

时间:2016-02-06 07:55:29

标签: c unix fork system-calls

我运行了以下代码:

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

打印出单词&#34; Hello&#34; 8次,程序没有退出。这背后的原因是什么?

1 个答案:

答案 0 :(得分:3)

这是计算2 ^ 3的一种偶然有趣的方式。第一个fork使第二个fork发生两次,它们各自使第三个fork发生两次,所有8个子进行printf!这8个进程会退出,但是你的提示会在噪音中丢失。

正如评论者暗示的那样,你从根本上误解了fork()是什么以及它在做什么。但是一路上你做了一个有趣的玩具,那么勇敢!