【问题标题】:How do I make a skewed tree using fork() in C?如何在 C 中使用 fork() 制作倾斜的树?
【发布时间】:2020-02-01 05:16:19
【问题描述】:

我希望创建一个具有 3 个节点的倾斜树,其中 2 个节点将有 1 个子节点,最后一个节点将是无子节点。我真的不明白如何进行此操作。

Example

【问题讨论】:

    标签: c linux operating-system fork system


    【解决方案1】:

    这似乎是fork() 的正常使用,基本上。这是一些伪代码:

    // start in process 3
    int pid = fork();
    if (pid == 0) {
       int pid2 = fork();
       if (pid2 == 0) {
           // process 1
       } else {
           // process 2
       }
    } else {
       // process 3
    }
    

    【讨论】:

    • 我似乎不明白你是如何在 2 次分叉后得到 3 个进程的。我的教授告诉我,它总是会创建 2^n 个进程。还是只有当您在另一个叉子之后立即叉子时才这样做?如果我在阅读后理解正确,通过在 if 语句中分叉,只有 pid2 执行 fork(),这是正确的吗?
    • 您从一个进程开始。在第一个叉子之后,你有两个。其中一个继续(//process 3),另一个再次调用fork(),所以你有三个。你的理解是正确的。
    猜你喜欢
    • 1970-01-01
    • 2020-02-29
    • 2022-01-13
    • 2016-12-23
    • 2023-03-08
    • 2019-03-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多