【发布时间】:2016-02-15 06:23:19
【问题描述】:
我有以下关于 fork() 进程的查询: 说我有一个代码:
if(fork()||fork())
printf("1");
else if(!fork())
printf("2");
else
printf("3");
其中,将打印 1,2 或 3。 我知道 fork() 为父进程返回非零,为子进程返回 0。因此,当它遇到第一个语句时,第一个 fork() 调用将为父进程返回 1,为子进程返回 0。因为有||运算符,第二个 fork() 将仅在第一个操作数返回 0 时运行。因此第二个 fork 将在子级而不是父级上调用。我的理解正确吗?如果是,则 1 将由孩子打印。那么它会去 else if 和 else 块吗? 任何帮助将不胜感激!
【问题讨论】:
-
请缩进您的代码。
标签: c if-statement process fork