所以我在修订过程中看到了以下代码。我知道 wait() 会导致父母等待孩子停下来,但我对此有一些疑问。
首先,当孩子被创建时,我的假设是否得到纠正,即父母继续,改变 x 值,然后在 if 语句之后等待?
其次,当孩子继续执行并开始等待()时,会发生什么?这是否被忽略了,因为它没有什么可等待的?
#include <sys/types.h>
#include <stdio.h>
#include <unistd.h>
int main() {
int x = 1;
pid_t pid = fork();
if (pid == 0) {
x = x * 2;
} else if (pid > 0) {
x = 3;
}
wait();
// Print the value of x to the console
printf("%d\n",x);
}