c - fork系统调用不退出

标签 c unix fork system-calls

我运行了以下代码:

#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/

相关文章:

c - 在 Linux 中使用 libudev 以编程方式枚举 USB 闪存驱动器

python - flock、fork 和终止父进程的死锁

c - 在不保持父进程执行的情况下获取子进程的返回值

一个进程可以有两个PID吗?

c - 读取数据文件时出现段错误

c++ - 嵌套循环可以在单个循环上抓取吗?

c++ - 使用 db2 和 c++ 在数据库中存储十进制浮点值 (DECFLOAT)

java - 在 Java 中重复 Unix 命令

unix - 如何重定向到标准输出?

c++ - 为什么你会选择 "a.out file"而不是 "a.out < file",反之亦然? C++