2017-05-28 100 views
1

在Linux中,C++可以返回退出代码吗?即是该代码有效:Linux,C++,负面退出代码,澄清?

int main() 
{ 
    return -1; 
} 

的理由,如果这种代码被编译和庆典/ zsh中执行我问,返回值是255,我轻薄本由于是使用一个8位的事实返回码,并且这意味着返回码只能在正值之间。

这是正确的吗?

+4

交叉重复:https://unix.stackexchange.com/questions/37915/why-do-i-get-error-255-when-returning-1 –

+0

是的,外壳只与0 - 255作为一个返回代码值。 – 0x0C4

回答

1

相关系统调用是_exit(),和POSIX itself specifies只的状态的低8位给予_exit()通常可用:

_exit(status)
的状态值可以是0EXIT_SUCCESSEXIT_FAILURE,或任何其他值,但只有最低有效8位(即status & 0377)可从wait()waitpid()获得;

虽然它继续说“完整的值应该从waitid()可用”,但在Linux上,我似乎仍然只得到低八位。

0

否,传递给exit(2)的退出代码与您的程序通过发送给它的信号中断的情况下的数据合并。 exit(2)返回码仅为wait(2)返回的代码的最小显式字节。有关如何形成返回码的说明,请参见wait(2)exit(2)的页面。