【发布时间】:2016-05-20 12:46:14
【问题描述】:
我正在尝试理解 fork() 概念,但有一件事我似乎无法理解。
在以下代码中 - 为什么即使子进程将其更改为 5,父进程仍会打印 i=0?
wait(NULL) 会阻塞父进程,直到子进程先完成。
int main(int argc, char *argv[]) {
int i = 0;
if (fork() == 0) {
i = 5;
} else {
wait(NULL);
printf("i = %d\n", i);
}
return 0;
}
有人可以解释为什么我的假设不正确吗?
【问题讨论】:
-
你猜
fork会做什么?