在Linux中,C++可以返回退出代码吗?也就是说,以下代码是否有效:
如果这段代码是在bash/zsh中编译和执行的,返回值将是255。我认为这是因为它使用的是8位返回码,这意味着返回码只允许介于正数之间。这样说对吗?
int main()
{
return -1;
}
如果这段代码是在bash/zsh中编译和执行的,返回值将是255。我认为这是因为它使用的是8位返回码,这意味着返回码只允许介于正数之间。这样说对吗?
int main()
{
return -1;
}
_exit()
,并且POSIX本身规定通常只能使用_exit()
给出的状态的最低8位:
_exit(status)
状态值可以为0
、EXIT_SUCCESS
、EXIT_FAILURE
或任何其他值,但是只有最低有效的8位(即status & 0377
)可以从wait()
和waitpid()
获取;
尽管它继续说"完整的值应该可以从waitid()
中获得",但在Linux上,我似乎仍然只能得到低8位。
不,传递给exit(2)
的退出代码与通过发送信号中断程序的情况下的数据合并。 exit(2)
返回的代码仅是由wait(2)
返回的代码的最低有效字节。请参阅wait(2)
和exit(2)
页面,了解返回代码的形成方式。