














问题:下面这段代码会输出多少次 hello ?
#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>
void test() {
fork() && fork() && fork() && sleep(10);
printf("hello\n");
exit(0);
}
int main() {
test();
return 0;
}
先说下答案:4 次
我本地测试的结果:
hello
hello
hello
# sleep(10)
hello
这道题的考点是 fork 函数和 && 操作符。
所以,主进程中,会逐个执行三次 fork,并sleep(10)。子进程中,&& 操作短路,直接执行 printf 函数。
此内容由惯性聚合(RSS阅读器)自动聚合整理,仅供阅读参考。 原文来自 — 版权归原作者所有。