所以我在修改期间看过以下代码。我知道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);
}
答案 0 :(得分:0)
您可以在子执行开始时尝试调用wait()。一旦这个过程中没有孩子,就会忽略调用。