0

有人碰巧知道退出状态代码 4479 (0x117f) 在 Ubuntu Linux 系统上的含义吗?我在没有程序编码的情况下得到了这个(我只有 EXIT_SUCCESS 和 EXIT_FAILURE,分别为 0 和 1),我似乎找不到 255 以上的此类代码列表。谢谢!

4

2 回答 2

6

这个 4479 或 0x117f 看起来像是从 C/C++system()调用返回的东西(与 Unix$?预定义变量的值相反,它可能只有 0-255)。鉴于您使用的是 Linux,您很可能会使用glibc

所以在这种情况下,这个值不是 0-255exit()状态,而是像设置的状态一样格式化waitpid()(可能包含退出状态,但在这种情况下可能没有)。

如果是这样,那么告诉我这WIFSTOPPED(4479)将返回 true,并且WSTOPSIG(4479)将返回 17。(有关waitpid()更多信息,请参见手册页。)因此返回 4479 的进程尚未退出并且仍然存在,但它被停止了信号 17.

信号 17 是 SIGCHLD(至少如果您在 x86 上运行 Linux),这意味着“子 [进程] 已停止或终止”。

在不了解您的特定应用程序上下文的情况下,我不知道为什么会出现 SIGCHLD。

于 2011-03-14T06:07:51.157 回答
2

看起来这是从or获得的状态值,与退出状态不一样。应该在状态值上使用宏、、和来确定其含义。在这种情况下,这个status的值看起来是正确的,这意味着子进程已停止。wait()waitpid()WIFEXITED()WIFSIGNALED()WIFSTOPPED()WIFCONTINUED()WIFSTOPPED()

于 2011-03-14T06:05:36.503 回答