我读到的C++ Primer书中写道:
从main函数返回的值的访问方式取决于操作系统。在UNIX和Windows系统上,在执行程序后,您必须发出相应的echo命令才能获取状态。在UNIX中,我们通过echo $?来获得状态。
因此,如果程序是这样的:
int main ()
{
return -88;
}
为什么
echo $?
不返回它本身?(当echo
时打印了168)有点儿可以。但是,它会将值转换为无符号8位值,这是256 − 88 = 168。这是系统相关的特点。
从main
返回一个值与使用该值调用std::exit
相同。标准的最新草案对于std::exit
(18.5,status
是您调用它的值)有以下说明:
最后,控制权将返回给主机环境。如果
status
为零或EXIT_SUCCESS
,则返回一种实现定义的状态形式,表示成功终止。如果status
为EXIT_FAILURE
,则返回一种实现定义的状态形式,表示不成功终止。否则,返回的状态是实现定义的。
通常情况下,该值要么按原样解释,要么转换为较小的(可能是无符号的)类型,但这实际上取决于您的环境和实现。
echo $?
对你来说返回的是什么? - MartyE