Fortran Coder

标题: 关于SYSTEM函数的异步后台执行 [打印本页]

作者: cqflhl    时间: 2023-11-27 23:48
标题: 关于SYSTEM函数的异步后台执行
call system('xxx.exe  aaa &')
调用外部exe, 但是同步执行, 即调用进程没有完成后不会返回.
想实现调用后立即返回, 但没有找到参数.

Matlab 中 system() 参数后面加 & 即认为是后台异步执行, 不会等待立即跳到下一语句.
在Fortran 里面参照 在参数字符串后面 加 &, 可是没有效果.

求助一下如何实现呢?

作者: 楚香饭    时间: 2023-11-28 08:16
本帖最后由 楚香饭 于 2023-11-28 08:19 编辑

call system('start xxx.exe  aaa ')
注意,这个 start 是 windows 提供的,而不是 Fortran

其实 Fortran 标准有提供更规范的写法,但需要较新的编译器才能支持。
call execute_command_line("xxx.exe  aaa",wait=.false.)


作者: cqflhl    时间: 2023-11-28 09:35
楚香饭 发表于 2023-11-28 08:16
call system('start xxx.exe  aaa ')
注意,这个 start 是 windows 提供的,而不是 Fortran

谢谢, 已经解决, 其实就想实现 Fortran 自己调用本身 exe, 实现多进程
但发现好像多个本身exe 调用后, 屏显都在一个exe 里面, 其他N个exe没有显示出来

作者: 楚香饭    时间: 2023-11-28 10:36
cqflhl 发表于 2023-11-28 09:35
谢谢, 已经解决, 其实就想实现 Fortran 自己调用本身 exe, 实现多进程
但发现好像多个本身exe 调用后, 屏 ...

你的想法可能用批处理实现更方便




欢迎光临 Fortran Coder (http://bbs.fcode.cn/) Powered by Discuz! X3.2