为什么超过255的返回码在C ++中返回不同的数字?

时间:2016-01-20 23:23:41

标签: c++ return exit-code

例如......

array1.insertContentsOf(array2, at: 1)

返回:

#include <iostream>

using namespace std;

int main(){return 300;}

...

1 个答案:

答案 0 :(得分:8)

标准只知道两个标准化的返回值:EXIT_SUCCESS(或零)和EXIT_- FAILURE

  

3.6.1 / 5 main中的return语句具有离开main函数的效果(销毁具有自动存储持续时间的任何对象)和   使用返回值作为参数调用 std::exit

     

18.5 / 8 (...)最后,控制权返回给主机环境。如果status为零或EXIT_SUCCESS,则为实现定义的状态形式   成功终止返回。如果状态为EXIT_- FAILURE,则为   实现定义的状态不成功终止的形式是   回。 否则返回的状态是实现定义的

因此无法保证按原样返回任何其他整数。

例如,在MS Windows上,GetExitCodeProcess()函数返回整数值,因此您将得到300.

POSIX兼容系统上,例如Linux,规则是(“只有8个最低有效位(即状态和0377)可供等待的父进程使用” )。因此对于300,它将是44。