我需要定义用Fortran 90编写的程序的退出代码,但我在路上感到困惑。
我读取并创建了NetCDF文件,因此NetCDF库提供了一些错误代码。为了将退出代码传递给Linux环境变量,我在代码中使用了exit(status)
,无论程序在哪里终止。
但是出了点问题,或者我至少不理解它。如果我从NetCDF收到错误代码,例如-49
(找不到变量),则程序结束,使用echo $?
时检索到的值为207
。为什么呢?
如果我使用status=-1
设置了一些特定的退出,则$?
值为255
。
我已经阅读了那些取决于shell的linux退出代码,其中一些是保留的,有一些叫做系统错误。
答案 0 :(得分:1)
Unix退出代码是无符号的。如果您返回否定值,则会隐式转换。
256-49 = 207,但这可能与平台有关。