【发布时间】:2014-07-30 15:00:57
【问题描述】:
我的代码中有这一行:
t = wait(&status);
子进程工作时status的值为0,嗯。
但是为什么它不起作用时返回 256 呢?为什么在出现错误时更改子进程中退出的参数值不会改变任何内容(例如,exit(2) 而不是 exit(1))?
谢谢
编辑:我在 linux 上,我用 GCC 编译。
我这样定义状态
int status;
t = wait(&status);
【问题讨论】:
-
问:什么平台?视窗? Linux?问:什么编译器?微博?海合会? Q:你是如何定义“状态”的?
int status? -
请展示一个最小的例子。
-
你错了。
exit(2)将返回512,而不是256(假设 linux 或类似系统)。退出值编码在第二低字节中,而最低字节编码有关进程终止原因的信息(例如信号编号)。 -
这就是我指定它的原因...它总是返回 256。