在fork()中检测子进程创建

时间:2017-03-06 16:56:44

标签: c++ unix fork

fork()系统调用生成两个相同的地址空间副本,一个用于父级,另一个用于子级。

使用带if语句的fork时,在以下代码中创建子进程的次数是多少次?

fork();
pid=fork();
if(pid==0)
{
fork();
}

1 个答案:

答案 0 :(得分:0)

添加一些额外的代码来获得类似的内容:

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

int main()
{
    pid_t pid;
    pid = fork();
    if (pid != 0) printf("%d\n", pid);
    pid = fork();
    if (pid != 0) printf("%d\n", pid);
    if(pid==0)
    {
        pid = fork();
        if (pid != 0) printf("%d\n", pid);
    }
    return 0;
}

然后编译,执行并检查其输出: 5个子进程ID