我运行了以下代码:
#include <stdio.h>
#include <sys/types.h>
int main()
{
fork();
fork();
fork();
printf("hello\n");
return 0;
}
在打印了 8 次“Hello”之后,程序没有退出。这背后的原因是什么?
最佳答案
这是计算 2^3 的一种意外有趣的方法。第一个 fork 使第二个 fork 发生两次,它们每个都使第三个 fork 发生两次,所有 8 个 child 都运行 printf! 8 个进程确实退出了,但是您的提示在噪音中消失了。
正如评论者所暗示的,您从根本上误解了 fork() 是什么以及它在做什么。但是一路上你做了一个有趣的玩具,太棒了!
关于c - fork系统调用不退出,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35238717/