Gcc退出状态代码

Gcc退出状态代码,gcc,Gcc,我注意到,在运行gcc时,如果编译失败,大多数时候它会返回一个退出状态代码“1”。但是,它有时返回状态代码“4”(例如,如果输入文件不存在)。我在gcc文档中找不到任何包含不同错误代码含义的内容——有人知道吗?根据命令行开关的设置,传递退出代码: 通常,如果编译器的任何阶段返回非成功返回代码,gcc程序将以代码1退出。如果指定-pass退出代码,gcc程序将返回由返回错误指示的任何阶段产生的数值最高的错误。如果遇到内部编译器错误,C、C++和FORTRAN前端返回4。 因此,文档似乎是错误的——

我注意到,在运行gcc时,如果编译失败,大多数时候它会返回一个退出状态代码“1”。但是,它有时返回状态代码“4”(例如,如果输入文件不存在)。我在gcc文档中找不到任何包含不同错误代码含义的内容——有人知道吗?

根据命令行开关的设置,传递退出代码:

通常,如果编译器的任何阶段返回非成功返回代码,gcc程序将以代码1退出。如果指定-pass退出代码,gcc程序将返回由返回错误指示的任何阶段产生的数值最高的错误。如果遇到内部编译器错误,C、C++和FORTRAN前端返回4。
因此,文档似乎是错误的——即使没有此选项,它有时也会返回非1错误退出代码,并且丢失输入文件的错误肯定不是内部编译器错误。您使用的是哪个gcc版本?当给定的文件不存在时,我的gcc版本7.3.0和旧的gcc 4.0.0都返回1。我有“gcc(gcc)4.8.5 20150623(Red Hat 4.8.5-28)”,如果在没有输入文件的情况下运行它,它会返回4(例如,命令行上只有“gcc”),所以不是文件不存在,而是命令行上没有指定输入文件。