是否有与标准(ish)UN*X进程退出代码等效的Windows退出代码?

ddrv8njm  于 2022-11-18  发布在  Windows
关注(0)|答案(2)|浏览(134)

我需要决定在不同的场景中使用哪个退出代码exit()。
Are there any standard exit status codes in Linux?
但是我需要编写一些跨平台的Linux+Windows的东西。MSWindows似乎没有/usr/include/sysexits.h这样的东西;它只有C89的stdlib.h,它提供

#define EXIT_SUCCESS    0
#define EXIT_FAILURE    1

那么,这两个是唯一的可移植的东西吗?或者Windows有一些更复杂的平台标准退出代码吗?
注意:我指的当然不是System Error Codes

pinkon5k

pinkon5k1#

如果进程没有正常终止,您经常会在Windows上看到一些退出代码。这些代码是很大的负数,如-1073741510,并在ntstatus.h中定义。最常见的退出代码是:
0xC0000005STATUS_ACCESS_VIOLATION:基本上相当于segfault
x1月4日至x1月5日
0xC000013ASTATUS_CONTROL_C_EXIT:应用程序被Ctrl+C中断
a large table on MSDN,虽然我不认为你会看到他们中的大多数作为退出代码。
对于应用程序定义的代码,情况与Linux相同。通常您选择一些退出代码并在文档中描述它们。
对于那些写批处理文件的人,要注意CMD会将上面的退出代码解释为带负数号的整数,所以测试IF ERRORLEVEL 0会成功地使用这些代码。

lfapxunr

lfapxunr2#

是否有与标准(ish)UN*X进程退出代码等效的Windows退出代码?
不,因为在实践中没有IXis标准退出代码(除了0表示成功和其他任何东西)。

相关问题