我以为 wait(4) 指令会强制父进程等待它的子进程完成但实际上并没有,进程“hijo2”首先启动,“padre”第二个和“hijo1”第三个
int variable = 6;
if (fork() == 0){
variable = variable -3;
printf("\nLa variable del proceso hijo1 contiene %d\n", variable);
} else if (fork()==0){
variable = variable -3;
printf("\nLa variable del proceso hijo2 contiene %d\n", variable);
} else {
wait(2);//para esperar a que terminen los hijos
variable = variable +5;
printf("\nLa variable del proceso padre contiene %d\n", variable);
}
exit(0);
最佳答案
wait
等待一个 child 终止。你需要调用它两次。
关于c、创建 child 和wait(),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33202103/