在Linux中,c ++可以返回退出代码吗?即此代码有效:
int main()
{
return -1;
}
我问这个代码是从bash / zsh编译和执行的原因,返回值是255,由于它使用了8位返回代码,我认为这很简单,这意味着返回代码是只允许在正面之间。
这是对的吗?
答案 0 :(得分:2)
相关的系统调用是_exit()
,而POSIX itself specifies只有_exit()
的状态的最低8位通常可用:
_exit(status)
状态值可以是0
,EXIT_SUCCESS
,EXIT_FAILURE
或任何其他值,但只有最不重要的8位(即status & 0377
)才能从wait()
和waitpid()
;
虽然它继续说"完整的值可以从waitid()
"获得,但在Linux上,我似乎仍然只得到低八位。
答案 1 :(得分:0)
否,传递给exit(2)
的退出代码与数据合并,以用于通过发送给它的信号中断程序的情况。 exit(2)
返回代码仅 wait(2)
返回的代码的最不重要字节。有关返回代码如何形成的说明,请参阅wait(2)
和exit(2)
的页面。