fork系统调用不退出

Fork system call not exiting

我有 运行 以下代码 :

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

打印"Hello"字8次后,程序没有退出。这背后的原因是什么?

这是计算 2^3 的一种意外有趣的方法。第一个 fork 使第二个 fork 发生两次,它们每个都使第三个 fork 发生两次,并且所有 8 children 运行 printf! 8个进程确实退出了,但是你的提示在噪音中消失了。

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