fortran在openvms中获取系统环境信息

问题描述

是否可以在Fortran 90(OpenVMS操作系统)上获取系统环境信息?我使用编译器VSI Fortran V8.3-104957-50Q83。 我不会在Fortran上实现下一个C代码

char *bind_addr= getenv("MysqL_TEST_BINDADDR");

解决方法

该主题是一系列问题中的一个,有关什么似乎是 OpenVMS上Fortran的“ C”应用程序。为了提供最好的答案,可能需要了解更多的背景知识-为什么要付出努力,源平台是什么?

也就是说,我们大多数人都知道环境变量在OpenVMS中并不存在。 OpenVMS DCL SYMBOLS和用户/组/系统逻辑名称可以被支持库(例如通过C-RTL,Perl和Python获得的支持库)视为环境变量。

要定义它们,人们需要一个选择符号或逻辑名称作为载体的shell(DCL)操作。知道要移植的应用程序的机制后,可能只想调用本机OpenVMS函数来获取或设置值(SYS $ TRNLNM,LIB $ GET_SYMBOL,LIB $ SET_SYMBOL)。

如果可以访问C编译器,则编写自己的“ my_getenv”包装程序以调用C-RTL提供的getenv可能是一个不错的解决方案。

另一种解决方法可能是反向工程并调用实际的C支持函数(可能称为DECC $ GETENV-未验证!),这可能需要先进行一些初始化(再次,未经验证)

肯定有更多关于此的文章。谷歌? 对于符号和逻辑的一些背景知识,文档和FAQ应该会有所帮助。 例如-http://www.hoffmanlabs.org/vmsfaq/vmsfaq_012.html

祝你好运, 海因。