gpt4 book ai didi

c++ - 程序的退出状态

转载 作者:太空宇宙 更新时间:2023-11-04 02:12:21 30 4
gpt4 key购买 nike

我遇到了这样一种情况,我必须获取程序的退出状态,即 exit() 函数返回的数字。

在 LINUX 中,使用 $? 命令我得到了状态。是否有任何其他方法可以在 Windows 中获得此状态?

我注意到的另一件事是,如果我们将负数传递给 exit() 函数,它会使我的 IDE 崩溃并且 $? 命令无法在此给出状态案例太。我检查了 exit() 函数,它的引用说明我们可以传递一个整数。

最佳答案

程序返回值在不同的操作系统上有不同的含义。在 Unix-y 系统上,只有 0-255 的值是有效的(1 个无符号字节)。请注意,这意味着不允许使用负值,这可能是您的 IDE 问题的原因。 FreeBSD 在 sysexits.h 中引入了许多特定含义,虽然这肯定存在于我使用过的 Linux 发行版中,但唯一真正普遍接受的是 0 表示成功,非 0 表示失败。正如 Pete Becker 指出的那样,EXIT_SUCCESSEXIT_FAILURE 是标准定义的宏(01 分别在 Unix-y 平台上,但定义了实现)。

在 Windows 上,你得到一个 32 位有符号整数(允许负数,不知道它们是否意味着什么)。同样,0 表示成功,其他值表示 various things .与 echo $? 一样,您可以使用 echo %errorlevel% 在控制台中查看最后一个程序的退出代码。

另请注意,我的N3337(非常接近 C++11 标准的草案)在 3.6.1 节第 5 段中说:

If control reaches the end of main without encountering a return statement, the effect is that of executing return 0;

关于c++ - 程序的退出状态,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12512177/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com