【发布时间】:2011-06-24 22:36:37
【问题描述】:
我正在设计一个计划用 C 语言实现的程序,我对调用外部程序的最佳方式(在性能方面)有疑问。用户将为我的程序提供一个文件名,然后我的程序将使用该文件作为输入运行另一个程序。然后我的程序将处理另一个程序的输出。
我的典型方法是将其他程序的输出重定向到一个文件,然后让我的程序在完成后读取该文件。但是,我知道 I/O 操作非常昂贵,我想让这个程序尽可能高效。
我稍微看了看,发现popen 命令用于运行系统命令并获取输出。这种方法的性能与我刚才描述的方法的性能相比如何? popen 只是将外部程序的输出写入临时文件,还是将程序输出保存在内存中?
或者,是否有其他方法可以提供更好的性能?
【问题讨论】:
-
读写步骤的相对表现如何?外部流程产生结果的速度是否比您处理结果的速度快?
标签: c performance system popen