Fortran 中的 Spawn 进程

Spawn processes in Fortran

如何在 Fortran 中启动子进程(例如执行 shell 命令等)?

在Node.js中,我们可以使用spawnexec来启动子进程:

var proc = require("child_process").spawn("ls", ["-l"]);
proc.stdout.on("data", function (chunk) {
  console.log(chunk);
});

// or

var proc = require("child_process").exec("ls -l"], function (err, stdout, stderr) {
   ...
});

以上两个示例 运行 ls -l(列出文件和目录)。在 Fortran 中如何实现同样的事情?

这似乎是一个 "How do you drive in a nail with a socket wrench" 类型的问题,但我决定尝试 google 并发现

https://gcc.gnu.org/onlinedocs/gfortran/EXECUTE_005fCOMMAND_005fLINE.html

      program test_exec
        integer :: i

        call execute_command_line ("external_prog.exe", exitstat=i)
        print *, "Exit status of external_prog.exe was ", i

        call execute_command_line ("reindex_files.exe", wait=.false.)
        print *, "Now reindexing files in the background"

      end program test_exec

他们一直在向 FORTRAN(在 2008 规范中)添加类似的东西,谁知道呢?