是否可以获取Fortran 90(OpenVMS操作系统)的系统环境信息?我使用编译器VSI Fortran V8.3-104957-50Q83。 我不会意识到 Fortran 上的下一个 C 代码
char *bind_addr= getenv("MYSQL_TEST_BINDADDR");
最佳答案
本主题是关于似乎是针对某个项目的移植工作的一系列问题之一。 OpenVMS 上的 Fortran“C”应用程序。为了提供尽可能最好的答案,了解更多背景知识可能会有所帮助 - 为什么要进行这项工作,源平台是什么?
也就是说,我们大多数人都知道的环境变量在 OpenVMS 上并不存在。 OpenVMS DCL 符号和用户/组/系统逻辑名称可以并且将被支持库(例如通过 C-RTL、Perl 和 Python 提供的库)视为环境变量。
为了定义它们,需要一个 shell (DCL) 操作来选择符号或逻辑名称作为载体。了解要移植的应用程序可能只想调用 native OpenVMS 函数来获取或设置值(SYS$TRNLNM、LIB$GET_SYMBOL、LIB$SET_SYMBOL)。
如果您有权访问 C 编译器,编写您自己的“my_getenv”包装器来调用 C-RTL 提供的 getenv 可能是一个很好的解决方案。
另一种解决方法可能是进行逆向工程并调用实际的 C 支持函数(可能称为 DECC$GETENV - 未验证!),这可能需要首先调用一些初始化(同样,未验证)
当然还有更多关于此的文章。谷歌? 对于符号和逻辑的一些背景知识,文档和常见问题解答应该有所帮助。 例如 - http://www.hoffmanlabs.org/vmsfaq/vmsfaq_012.html
祝你好运, 海因。
关于fortran在openvms中获取系统环境信息,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64237214/