首页 > 解决方案 > 这个程序产生的同时存在的进程的最大数量是多少,包括原来的进程?

问题描述

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

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

标签: c++cfork

解决方案


五。原始过程,每个 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 个“进程退出”语句。


推荐阅读