cqflhl 发表于 2023-11-27 23:48:29

关于SYSTEM函数的异步后台执行

call system('xxx.exeaaa &')
调用外部exe, 但是同步执行, 即调用进程没有完成后不会返回.
想实现调用后立即返回, 但没有找到参数.

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

求助一下如何实现呢?

楚香饭 发表于 2023-11-28 08:16:23

本帖最后由 楚香饭 于 2023-11-28 08:19 编辑

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

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

cqflhl 发表于 2023-11-28 09:35:27

楚香饭 发表于 2023-11-28 08:16
call system('start xxx.exeaaa ')
注意,这个 start 是 windows 提供的,而不是 Fortran



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

楚香饭 发表于 2023-11-28 10:36:16

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

你的想法可能用批处理实现更方便
页: [1]
查看完整版本: 关于SYSTEM函数的异步后台执行