liudy02 发表于 2019-12-24 12:41:51

fortran执行系统命令后,能否将输出获取成字符串?

就是执行execute_command_line之后不将结果输出到屏幕,而是存储到一个字符串中

li913 发表于 2019-12-24 13:39:07

本帖最后由 li913 于 2019-12-24 13:40 编辑

用重定向,输出到文件,读文件。

liudy02 发表于 2019-12-24 14:00:26

li913 发表于 2019-12-24 13:39
用重定向,输出到文件,读文件。谢谢
额,这个会不会太没有效率了……没有直接把输出读到内存中的办法么

vvt 发表于 2019-12-24 22:24:03

百度了解“管道符”
other.exe | your.exe

liudy02 发表于 2019-12-25 01:09:51

vvt 发表于 2019-12-24 22:24
百度了解“管道符”
other.exe | your.exe
额,非常感谢,这确实是一个办法
然而有一大一小两个问题

一个小问题是,如果这么做的话需要把执行命令行的code单独编译成一个可执行程序
然后再把读取执行结果的code写在主程序中,看起来不怎么优雅
不过这也不是什么大问题,能用就好

大问题才是比较头疼的,这样的写法做不到实时呀
也就是在执行过程中,如果主程序需要实时根据执行结果来做不同的事情
比如会执行不同的命令行;或者会执行改变下一个命令行结果的事情
碰到这样的情况,这种办法是无法处理的

vvt 发表于 2019-12-26 10:56:20

实时的管道处理,不是标准语法的内容。你可以看你的操作系统是否支持对应的函数。

比如 linux 中,unistd.h 头文件定义的 pipe 函数

liudy02 发表于 2019-12-27 14:40:39

vvt 发表于 2019-12-26 10:56
实时的管道处理,不是标准语法的内容。你可以看你的操作系统是否支持对应的函数。

比如 linux 中,unistd. ...

咦,还真有这种东西啊,回头好好了解一下
谢谢
页: [1]
查看完整版本: fortran执行系统命令后,能否将输出获取成字符串?