如何使用 fork() 创建这个进程树?

How to create this process tree using fork()?

首先,我想问您如何仅使用 fork() 函数创建下面列出的流程树。

|____1____
|___2__   |
|_4_   |  |_3_
|   |  |  |   |


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

int main() {
   if (fork()) {

问题是我不知道下一步该做什么以及它是如何工作的。

if(fork()){
    if(fork()){
        if(fork()){
        }
        else{}
    }
    else{}
}
else{
    if(fork()){}
    else{}
    }

好看吗?我一个人解决了...

让我们尝试使用更多的空格和一些占位符注释供您填写:

/* initial process */
if (fork()) {
    /* process ? */

    if (fork()) {
        /* process ? */

        if (fork()) {
            /* process ? */

        } else {
            /* process ? */

        }
    } else {
        /* process ? */

    }
} else {
    /* process ? */

    if (fork()) {
        /* process ? */

    } else {
        /* process ? */
    }
}