Linux,c ++,负退出代码,克拉里小说

Linux,c++, negative exit codes, clarifiction?

本文关键字:小说 代码 退出 Linux      更新时间:2023-10-16

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

int main()
{
  return -1;
}

我问这段代码是否是从 bash/zsh 编译和执行的,返回值将是 255,我把它精简了,因为它使用 8 位返回代码,这意味着返回代码只允许在正数之间。

这是对的吗?

相关的系统调用是_exit()的,POSIX 本身指定只有给定_exit()状态的底部 8 位通常可用:


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

虽然它继续说"全部价值应该从waitid()获得",但在 Linux 上,我似乎仍然只得到低八位。

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