采用以下 C++ 程序:
#include <cstdlib>
int main(){exit(-1);}
当我在 zsh
、bash
或 sh
中运行该程序时,我得到以下结果:
$ ./test
$ echo $?
255
$
如果我运行:
#include <cstdlib>
int main(){exit(256);}
它产生以下内容:
$ ./test
$ echo $?
0
$
shell 解释 0 - 255 之间的返回码是否正常?
是否有可能产生超出此范围的值?
最佳答案
C++ 允许您从 main
返回两个值:EXIT_SUCCESS
和 EXIT_FAILURE
。返回EXIT_SUCCESS
等同于返回0
,与调用std::exit(0)
效果相同。
返回值以实现定义的方式传递回操作系统,操作系统如何处理该值也是实现定义的。最后,从 main
返回任何其他值的语义也是实现定义的。
C++ 在这个问题上没有更多可说的。您需要查阅平台的文档。
关于c++ - 为什么我的 shell 只检测 0 - 255 之间的返回码?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37682004/