Fortran:管道到程序

标签 fortran fortran90 gfortran

是否有可能从 Fortran 启动外部程序并向该程序的标准输入写入内容?

我知道例如gfortran 的 SYSTEM 但没有这样的选项。

最佳答案

正如您所注意到的,GFortran 没有内置的类似 pipeline()/fork()/exec() 函数。

如果您使用的是 Linux 或其他类似 Unix 的系统,您可以执行类似的操作

  1. execute_command_line("mkfifo/path/to/fifo")

mkfifo 命令创建一个命名管道,即在文件系统中也有名称的管道。

  • open(newunit=plot_unit, file="/path/to/fifo", access="stream", format="formatted")

  • execute_command_line("gnuplot

  • 所以我们的想法是,您可以像 GFortran 中的普通外部单元一样打开 FIFO,然后使用连接到 FIFO 的标准输入执行 gnuplot。

    您可能需要交换 #2 和 #3 的顺序,以防出现死锁。但上述内容的一些细微变化应该可以工作(我已经使用它从一个 Fortran 程序连接到另一个程序)。

    关于Fortran:管道到程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37763832/

    相关文章:

    fortran - gfortran 不适用于 osx 优胜美地

    oop - fortran 2003 中的运行时多态性

    带有/输出编译器标志的 Fortran 精度默认值

    pointers - 是否可以在 fortran 的类型构造函数中使用指针?

    python - 将 Fortran 对象导入 Python

    Fortran、Open MP、间接递归和有限的堆栈内存

    c++ - "expensive"如何从C++调用Fortran?

    constructor - 如何覆盖fortran中的结构构造函数

    fortran - Fortran、Cobol、Basic 和 Forth 是高级编程语言吗?

    fortran - 使用 MPI IO 编写多个分布式数组