如果系统杀死你的应用程序(就像分段错误一样),它会将退出代码设置为128 SIGNAL – 请参阅linux
signal(7) manpage获取信号值.
另外,对于linux,sysexits.h头文件中定义了几个默认退出代码,建议程序员使用这些常量而不是手动定义自己的值.从exit(3) manpage开始:
BSD has attempted to standardize exit codes; see the file .
您可以找到该文件,例如here,其中包含的值为:
#define EX_OK 0 /* successful termination */
#define EX__BASE 64 /* base value for error messages */
#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 */
#define EX__MAX 78 /* maximum listed value */
但是,使用它们不是强制性的,您可以自由使用任何您想要的值.
一般的答案是 – 如果你的应用程序正常失败(即它能够处理完成执行的错误),那么它自己设置退出代码.如果应用程序被系统杀死,则系统会设置退出代码.
您还可以查看this thread以获取更多信息.