Fortran 中的 Spawn 进程
Spawn processes in Fortran
如何在 Fortran 中启动子进程(例如执行 shell 命令等)?
在Node.js中,我们可以使用spawn
或exec
来启动子进程:
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 规范中)添加类似的东西,谁知道呢?
如何在 Fortran 中启动子进程(例如执行 shell 命令等)?
在Node.js中,我们可以使用spawn
或exec
来启动子进程:
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 规范中)添加类似的东西,谁知道呢?