c++ - 该程序最多可产生多少个同时存在的进程(包括原始进程)?

标签 c++ c fork

如何确定以下程序的这一点?

if (fork()){
    if(!fork()){
        if(fork()){
            fork();
        }
    }
}
exit(0);

最佳答案

五。原始进程,每个 fork 调用加一个。添加 sleep 语句并打印调用以进行验证。

#include <stdio.h>
#include <unistd.h>
#include <stdlib.h>

int main()
{
    printf("Process Starting\n");

    if (fork()){
        if(!fork()) {
            if(fork()){
                fork();
            }
        }
    }

    printf("Process Exiting\n");
    sleep(2); // sleep 2 seconds
    return 0;
}

我断言您会看到打印 5 条“进程退出”语句。

关于c++ - 该程序最多可产生多少个同时存在的进程(包括原始进程)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54893100/

相关文章:

c - 在数组中写入一个 char *,然后在文件中写入

c - 多次 fork 并在 exec 之前打印一些内容

C: `write error: Bad file descriptor` 在 fork、dup2 和 execv 之后

c++ - mingw32 w64 缺少 OpenGL32 库

c++ - '(也许你打算使用 ‘->’ ?)' 在 gmock 测试

c++ - printf 从整数转义 unicode 字符

linux - 使用简单的 C 代码阻止用户锁定崩溃的 Linux 机器

c++ - 从 MySQL 获取 UTF-8 数据到 Linux C++ 应用程序

c - 这个将元素添加到链表的函数有什么问题?

c - 了解 C 中的静态存储类