c、创建 child 和wait()

标签 c linux wait

我以为 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/

相关文章:

c - 对 `std::ios_base::Init::Init()' 的 undefined reference

c - 不理解标准输出语义

c - TCP 函数 recv() 不能在循环中工作

javascript - html2canvas 等待图片加载

Python time.sleep 与忙等待准确性

c - 我的无符号短指针返回意外结果。为什么?

c++ - 不使用条件变量唤醒线程的最快方法

c - 逐渐将音频文件从正常速度减慢到一半速度?

linux - 为什么不在 ARM Linux Kernel 上为 vmalloc 填写页面错误中的 PTE 条目?

java - 如何同步使用多线程?