这些 fork() 调用创建了多少个进程?

How many processes are created with these fork() calls?

如何查看已创建的进程数?我可以使用 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;
}

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

进程数 = 2

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

进程数 = 3

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

进程数 = 5

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

进程数 = 6