gpt4 book ai didi

c++ - 子进程退出状态的含义

转载 作者:太空宇宙 更新时间:2023-11-04 11:09:47 25 4
gpt4 key购买 nike

有一些这样的代码:

unsigned pid = waitpid(mPid, &status, WNOHANG);
mExitStatus = WEXITSTATUS(status);

获取变量的调试打印,如:

mExitStatus = 15
status = 3840

对于“mExitStatus = WEXITSTATUS(status)”,我得到了以下解释的声明

evaluates to the least significant eight bits of the return code of the child which terminated
3840 = F00; F is 15 which is assigned to mExitStatus

但是问题是如何用这个15来判断子进程是否正确终止呢?

15来自3840,但是3840是linux进程返回的?有什么意义吗?

在一般描述中,我的 main 启动了 4 个 child_process 运行 4 个测试。我想主要判断这 4 个测试是否通过。所以我想我需要判断我的子进程的退出状态。

谢谢

最佳答案

标准是退出状态为零表示“成功”,其他任何情况都是某种失败。在 *nix 系统上,从 129 到 150 左右的值通常可以解释为“进程因信号而终止”,信号号是返回值负 128。一般故障通常返回 1,但有时返回 2 或3 或其他一些小数字。

最后,程序返回什么完全取决于程序,但这些是典型值。

关于c++ - 子进程退出状态的含义,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23720147/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com