程序退出状态和$?

Jam*_*sev 3 c++ exit-code

我读过的《C++ Primer》书上是这么说的

从 main 返回的值以系统相关的方式访问。在 UNIX 和 Windows 系统上,远程执行程序时必须发出适当的 echo 命令。在 UNIX 上,我们通过 echo $? 获取状态

所以,如果程序是

int main ()
{
    return -88;
}
Run Code Online (Sandbox Code Playgroud)

为什么echo $?不退货呢?(上面印有 168 echo

Ker*_* SB 5

确实如此。不过,它会将值转换为无符号 8 位值,即 256 − 88 = 168。这是系统相关方式的一部分。