1

更新经过一番挖掘,我发现这是一些解决方法的一部分,该解决方法使用OPENPIPE. OPENPIPE简单地返回一个外部声明的文件句柄,对管道完全不做任何事情。OPENHOLDFILENAME实际上创建了一个文件,但我仍然对DFWIN与此有关的内容感到困惑。是否需要提供函数声明OPENPIPE?如果是这样,他们为什么还要EXTERNAL在 Fortran 代码中声明它?


我的任务是在 GCC 工具链上编译旧版 Fortran。我已经成功编译了一些源文件,但是在DFWIN 链接到一些 Win32 API 函数的模块方面遇到了障碍。它显然使用了一些 Win32 管道函数,我需要将其替换为适用于 gfortran 的现代等效函数(旧编译器是 Compaq Visual Fortran)。

首先,我看到了DFWIN包含的模块,以及一些外部函数:

    USE DFWIN
    EXTERNAL OPENPIPE
    EXTERNAL OPENHOLDFILENAME

以下是如何OPENPIPE使用的示例:

    OPEN(UNIT=INN,FILE=
    1   '\\.\pipe\input.txt',
    1   FORM='FORMATTED',STATUS='old',readonly,
    1   USEROPEN=OPENPIPE)

在使用 gcc/gfortran 的现代 Windows/Linux 系统上,我可以使用什么模块来替换这些调用?

编辑:我们的首要任务是让它在 Windows 上运行,但将来我们也希望在 Linux 上部署。

4

0 回答 0