【发布时间】:2023-02-22 05:44:23
【问题描述】:
我知道:
- 返回0表示程序执行成功。
- 返回-1表示程序未能正常执行。
- 您可以使用自己的退出代码返回,并使用例如退出(69)
我在互联网上搜索过,也发现了一些东西操作系统有自己的错误代码例如 Linux 的错误代码来自 0 to 255,Windows(我正在使用的操作系统)使用格式为 0xc0000000 的错误代码(如果我在任何方面有误,请纠正我。)
但是,当我使用 Code::Blocks IDE 时,我有二错误代码/值,例如:
返回状态为 -1073740940 (0xC0000374) 的进程
搜索了
0xC0000374,发现是heap corruption的意思,所以有用。然而搜索一个几乎随机的数字
-1073740940让我无处可去,所以一般来说这个值是多少?为什么当程序由于某些错误而不得不终止时,这个值必须如此大且随机? 程序中的某些变量是否由于某些未定义的行为而损坏?它从哪里来的?提前致谢。
【问题讨论】:
-
-1073740940是十六进制0xC0000374的有符号十进制表示 -
并不是说 Windows 中的所有错误代码都以
0xC开头。许多错误代码不是以此开头的。有关详细信息,请参阅this Microsoft documentation。此外,这些是 NTSTATUS 错误代码,这些只是 Windows 上的一种错误代码。 -
返回 -1 表示程序未能正确执行。否 [至少在 POSIX 系统上]:你不能真正返回一个 [有意义的] 负数。一般返回
1(不是-1) 表示错误。大多数程序返回0/1,但错误代码实际上是敞开的。有关大约,请参阅man rsync。它可以返回 20 个错误。
标签: c error-handling