从 Fortran 到 Linux 的退出代码
Posted
技术标签:
【中文标题】从 Fortran 到 Linux 的退出代码【英文标题】:Exit codes from Fortran to Linux 【发布时间】:2013-11-12 17:03:22 【问题描述】:我需要定义我用 Fortran 90 编写的程序的退出代码,但我在途中感到困惑。
我读取并创建了 NetCDF 文件,因此一些错误代码是由 NetCDF 库提供的。为了将退出代码传递给 Linux 环境变量,我在代码中使用 exit(status)
来终止程序。
但是出了点问题,或者至少我不明白。如果我从 NetCDF 获得错误代码,例如 -49
(未找到变量),则程序结束并且使用 echo $?
时检索到的值是 207
。为什么?
如果我使用status=-1
设置了一些特定的出口,那么$?
的值就是255
。
我看过那些依赖于shell的linux退出代码,其中一些是保留的,还有一些叫做系统错误。
【问题讨论】:
我已经看到 255 表示退出状态超出范围(退出仅需要 0 - 255 范围内的整数参数)。但是,那个 207 是从哪里来的? 【参考方案1】:Unix 退出代码是无符号的。如果你返回一个负数,它将被隐式转换。
256-49=207 但这可能取决于平台。
【讨论】:
这是有道理的。谢谢你的回答。以上是关于从 Fortran 到 Linux 的退出代码的主要内容,如果未能解决你的问题,请参考以下文章
Linux 上 fortran 代码的 Intel Vtune 奇怪行为