从 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 的退出代码的主要内容,如果未能解决你的问题,请参考以下文章

在ubuntu下安装fortran

Linux 上 fortran 代码的 Intel Vtune 奇怪行为

力学 Fortran 预处理器

如何编译C/Fortran动态/静态链接库

fortran 77从输入到字符串,如java中的input.next()

FORTRAN中如何定义全局变量