【发布时间】:2011-10-26 21:28:10
【问题描述】:
任何人都可以在没有看到所有源代码和库等的情况下回答这个问题,但我会尝试。
我有一个使用 boost-1.41 用 C++ 编写的程序 X。如果X 输出为std::cout,则使用fp=popen("X", "r") 从另一个程序运行X 允许通过fgets(buff, 1024, fp) 看到X 的输出。
现在,如果我将X 更改为使用printf() 而不是std::cout,则不再看到X 的输出。但是,从 bash 运行 X 会产生预期的输出。
什么可以解释这种差异?!我怀疑这里涉及到 boost,但我对 boost 了解不多。
注意:我很高兴坚持std::cout,我的问题已经解决了。但我试图了解printf() 的问题所在。
【问题讨论】: