退出状态代码4479

时间:2011-03-14 04:52:03

标签: linux process exit exitstatus

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

2 个答案:

答案 0 :(得分:5)

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

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

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

Signal 17 is SIGCHLD(至少如果你在x86上运行Linux),这意味着“Child [进程]停止或终止”。

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

答案 1 :(得分:2)

看起来这是从wait() or waitpid()获取的状态值,与退出状态不同。应在 status 值上使用宏WIFEXITED()WIFSIGNALED()WIFSTOPPED()WIFCONTINUED()来确定其含义。在这种情况下,对于 status 的值,WIFSTOPPED()似乎是真的,这意味着子进程已停止。