You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

C语言中wait()的返回进程及子进程退出状态取值问题

C语言wait()函数行为与状态取值规则咨询

核心疑问

  • C语言中的wait()函数究竟会返回哪个进程的终止状态?
  • 结合提供的多fork分支代码场景,当进程p2运行结束时,wait()会向&status指向的内存存入什么值?
  • 理清非显式exit()传参场景下的状态取值规则:已知子进程通过exit(100)终止时,状态值会与100的退出码对应,但当前示例的状态取值逻辑不明确

场景对应代码

主函数实现:

int main() {
    int status;
    if ((p1 = fork()) != 0) {
        if ((p2 = fork()) != 0) {
            wait(&status);
            wait(&status);
        } else {
            processB();
        }
    }
    return 3;
}

自定义子流程函数定义:

int processB() {
    return 1;
}

内容的提问来源于stack exchange,提问作者user15634520

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.25 23:24:04