我如何使用wexitstatus获取超过255的值

时间:2013-05-12 14:42:17

标签: wexitstatus

我可以说一点英语,所以我希望你能理解我说的话。

我分叉子进程,然后我在子进程中进行ADD。 EX:56 + 48 = 104

如果值低于255,我可以使用“wexitstatus(status)”来获得答案。

但是如果值高于256,那就错了!

我该怎么办?

1 个答案:

答案 0 :(得分:1)

如果程序返回退出代码> 255,程序完全错误,需要修复。那是违反Unix标准的。如果您不使用标准Unix,则可能需要在组织联系人中提供专家帮助。

从等待的联系方式():

  

WEXITSTATUS(stat_val)

     

如果WIFEXITED(stat_val)的值不为零,则此宏将计算子进程传递给_exit()或exit()的status参数的低8位或子进程的值从main()返回。

它限制为8位,这意味着1个字节,这意味着来自WEXITSTATUS的int只能在0到255之间。事实上,任何 Unix程序只会返回最多255个。

此外,许多操作系统/程序保留> 127表示系统指定的代码,所以你甚至不应该使用上面的任何东西。

如果您需要更多的返回码而不是126(因为0没有错误),请考虑将其写入STDOUT并挂钩。