如何使用&&和||评估这些fork()调用 C中的运营商?

Ami*_*mar 3 c

我在C下面有一些使用fork()系统调用的代码,但我很困惑:如何
解决它的问题:

int main()
{
    fork();
    fork() || fork() && fork();
    fork();
    printf("ämit");
}
Run Code Online (Sandbox Code Playgroud)

fork() && fork() || fork(); 评估如下所示:

       fork()
      /      \
    0/        \>0
 || fork()     && fork()
     /\            /   \
    /  \         0/     \>0
   *    *     || fork()  *
                /   \
               *     *
Run Code Online (Sandbox Code Playgroud)

我需要同样的树fork() || fork() && fork().任何人都可以告诉我应该如何实现它?

pax*_*blo 5

如果这是一个面试问题(可能)或作业(可能性略低),你先冷静地解释你如何进行评估.

我的意思是,你说第一,第二和第五个叉子是无条件的,但第三个和第四个叉子取决于第二个和第三个(并且这些第二个和第三个将在多个过程中发生).

将表明您理解这些概念.

然后你解释它并不重要,因为如果有任何编码器实际上交给你这样的代码,那么就会有一些严重的tar'n'feather动作正在进行中.像这种怪物的代码在现实世界中没有地位,虽然它有助于测试你的理解,但你永远不会在现实中遇到它.