【发布时间】:2015-12-31 15:34:19
【问题描述】:
我想创建一个跨平台(windows、mac、linux)C 应用程序,它能够生成子进程并同时捕获标准输入、标准输出和标准错误。
我知道在 unix 中使用 popen StackOverflow 可以做这样的事情
在带有 WinAPI 的 Windows 中,MSDN
我也知道可以将输出重定向到文件并从那里读取,但是重定向标准管道似乎是一个非常基本的标准库功能。
我是否遗漏了一个基本功能和/或是否有任何轻量级的跨平台库可以用来实现这一目标而不会产生很大的复杂性?
【问题讨论】:
-
如果你想使用 all 标准流(输入、输出和错误),那么
popen是不可能的(它也存在于 Windows 中)。 Windows 和 POSIX(Linux 和 OSX)平台之间也没有通用功能,因此您必须使用预处理器进行条件编译。最后,我们不会帮助您找到图书馆,因为这与 SO 无关(但如果您找到图书馆并遇到麻烦,我们很乐意为您提供帮助)。 -
对不起
execl,我确实喜欢答案之一的代码示例。 (供将来参考Github)可以使用预处理器与 msdn 答案合并。不过,Glib 非常适合这项工作
标签: c pipe cross-platform