是否有标准的应用程序返回代码集?比如返回0表示成功1表示失败,然后等等?
我有一个Windows Server应用程序,我正在添加一些返回错误代码,并希望坚持标准代码,除了我将需要的应用程序特定的代码.
我认为唯一的标准是0表示成功,非零表示失败.这更像是一种惯例,而不是一种标准.
也许你可以采用一些Unix约定.
在另一个答案中,用户大卫建议
sysexits.h
有一个标准退出代码列表.它似乎可以追溯到至少1993年和一些像Postfix这样的大项目使用它,所以我想它是要走的路.从OpenBSD手册页:
根据样式(9),在结束程序时,使用任意值调用exit(3)来指示失败条件并不是一个好习惯.相反,应该使用来自sysexits的预定义退出代码,因此进程的调用者可以在不查找源代码的情况下粗略估计失败类.
这是Debian系统上出现的列表:
#define EX_USAGE 64 /* command line usage error */ #define EX_DATAERR 65 /* data format error */ #define EX_NOINPUT 66 /* cannot open input */ #define EX_NOUSER 67 /* addressee unknown */ #define EX_NOHOST 68 /* host name unknown */ #define EX_UNAVAILABLE 69 /* service unavailable */ #define EX_SOFTWARE 70 /* internal software error */ #define EX_OSERR 71 /* system error (e.g., can't fork) */ #define EX_OSFILE 72 /* critical OS file missing */ #define EX_CANTCREAT 73 /* can't create (user) output file */ #define EX_IOERR 74 /* input/output error */ #define EX_TEMPFAIL 75 /* temp failure; user is invited to retry */ #define EX_PROTOCOL 76 /* remote error in protocol */ #define EX_NOPERM 77 /* permission denied */ #define EX_CONFIG 78 /* configuration error */
在文件内部/usr/include/sysexits.h
可以找到这些错误代码的更详细描述.
标准状态代码是EXIT_SUCCESS
和EXIT_FAILURE
定义的stdlib.h
.然而,几乎所有人都分别使用0和1.某些软件将针对不同类型的错误使用不同的非零代码.
应用程序不应该遵循标准的退出代码集。
但是,您提到过一些成功的常见问题,例如0。根据所使用的操作系统和工具,您可以查看类似应用程序的退出代码并进行模仿。