Linux,c ++,负退出代码,澄清?

时间:2017-05-28 13:14:10

标签: c++ linux bash return zsh

在Linux中,c ++可以返回退出代码吗?即此代码有效:

int main()
{
  return -1;
}

我问这个代码是从bash / zsh编译和执行的原因,返回值是255,由于它使用了8位返回代码,我认为这很简单,这意味着返回代码是只允许在正面之间。

这是对的吗?

2 个答案:

答案 0 :(得分:2)

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

  

_exit(status)
  状态值可以是0EXIT_SUCCESSEXIT_FAILURE或任何其他值,但只有最不重要的8位(即status & 0377)才能从wait()waitpid();

虽然它继续说"完整的值可以从waitid()"获得,但在Linux上,我似乎仍然只得到低八位。

答案 1 :(得分:0)

否,传递给exit(2)的退出代码与数据合并,以用于通过发送给它的信号中断程序的情况。 exit(2)返回代码仅 wait(2)返回的代码的最不重要字节。有关返回代码如何形成的说明,请参阅wait(2)exit(2)的页面。