【发布时间】:2015-03-24 03:27:47
【问题描述】:
如果我们通过system()函数执行gcc来编译一个源文件,我怎样才能将gcc的输出捕获到一个字符串中?
我尝试使用popen,只要它读取类似"PAUSE" 的内容,它就可以工作,但不适用于 gcc,因为它运行一个新的子进程。
【问题讨论】:
-
在 fork/exec 之前使用 pipe(2) 和 dup2(2) 来重定向 stdin/stdout。
-
你在说什么输出?编译好的文件?错误信息?
-
@rici 控制台输出。这是我认为的错误消息。
-
pipe/dup2 的 Windows 等效项是 DuplicateHandle 和 CreatePipe。
标签: c windows redirect gcc stdout