【发布时间】:2011-09-02 17:07:58
【问题描述】:
这似乎有点像计算系统 101 问题,但我被难住了。
我正在将 C/C++ 项目 A 中的现有代码集成到我自己的项目 B 中。A 和 B 都将链接到一个可执行的线程进程中。项目 A 的代码大量使用 printf 进行输出。这很好,但我也想将该输出捕获到我自己的缓冲区中。一旦 printf 调用写入标准输出,有没有办法从标准输出中读取?我无法分叉进程或管道。我对标准输出的 poll() 或 dup() 的努力没有成功(我可能在这里做错了)。
【问题讨论】:
-
你不能将 A 的输出传送到 B 中吗? (
$commandprompt> ./A | ./B)。我假设它们都是可执行文件,并且 A 可以在 B 之前运行 -
听起来您想将它们保留为单独的可执行文件,然后在运行时使用管道连接它们。
-
不幸的是,没有。 A 和 B 必须链接到一个 exec 中。
-
将此问题链接到 [this][1]。 [1]:stackoverflow.com/q/5179108/1224741