为什么我的shell只检测0-255之间的返回代码
Why is my shell only detecting return codes between 0 - 255?
使用以下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++在这个问题上没有什么好说的了。您需要查阅平台的文档。
相关文章:
- 在 const 函数中通过引用和指针返回之间的区别
- 为什么 c++(g++) 不允许模板返回类型和函数名称之间有空格?
- 返回值0和-1之间的差异
- 返回引用实例和非引用实例(return mystr & vs mystr)之间的区别是什么?
- C++ - 负数和正数之间的比较返回 false
- 当我使用按引用返回时,我不知道这些代码之间的区别
- 为什么这个C++程序在代码::块和在线 IDE 之间返回不同的结果?
- 返回 *this 和 this - c++ 之间的区别
- 为什么返回前的值和返回后的值之间存在差异?
- 系统("暂停")返回EXIT_SUCCESS和返回 0 之间的区别
- 分段故障在类之间返回整数
- Visual C++ 和 gcc 之间从 std::isblank 返回不一致.哪一个错了
- 为什么在三元运算符的分支之间返回 lambda 对某些 lambda 有效?
- 在基类和派生类之间正确设置函数的返回
- 返回本地静态的函数和返回静态成员的函数之间有什么区别(对象大小、性能等)?
- 文字符号和字符串变量之间的串联然后返回常量字符*
- 返回值 vkEnumeratePhysicalDevices 在不同的 VkInstances 之间是否一致?
- 在c++中在多个函数之间返回和赋值向量的最佳方法
- 如何使构造函数在两者之间返回
- Linux和Windows之间返回值差异的原因是什么以及如何解决它