首页 > 解决方案 > 这些 fork() 调用创建了多少个进程?

问题描述

我怎样才能看到已经创建了多少进程?我可以使用该getpid()功能吗?

int main(int argc, char *argv[])
{
    int pid1, pid2, pid3, pid4;
    pid1 = fork();

    if (pid1 != 0) {
      pid2 = fork();
      pid3 = fork();
    } 
    else {
      pid4 = fork();
    }

    return 0;
}

标签: cfork

解决方案


fork()对于 pid1:创建了一个子进程。

进程数 = 2

fork()对于 pid2:创建了一个子进程。

进程数 = 3

fork()对于 pid3:创建了两个子进程,一个由原始进程创建,一个由进程 pid2 创建。

进程数 = 5

fork()对于 pid4:创建了一个子进程。

进程数 = 6


推荐阅读