我需要定义用Fortran 90编写的程序的退出代码,但是我在路上感到困惑。
我读取并创buildNetCDF文件,因此一些错误代码由NetCDF库提供。 为了将退出代码传递给Linux环境variables,我沿着代码使用exit(status)
来终止程序。
但有些事情是错的,至less我不明白。 如果我从NetCDF得到一个错误代码,例如-49
(variables未find),那么程序结束时,检索到的值使用echo $?
是207
。 为什么?
如果我使用status=-1
设置了一些特定的退出,那么$?
值是255
。
我已经阅读了那些依赖于shell的linux退出代码,其中一些是保留的,还有一些叫做系统错误。
Unix退出代码是无符号的。 如果您返回一个否定的,它将被隐式转换。
256-49 = 207,但这可能是平台相关的。