【发布时间】:2011-12-12 18:13:27
【问题描述】:
我正在使用一个共享库,其功能在任何地方都在执行 std::cout。是否可以在调用者级别做任何事情,我可以抑制 cout 输出或将其重定向到某个位置?
是否有可能在 c++ 中尝试这样的事情。
【问题讨论】:
-
我想你可以在每次调用共享库之前和之后freopen
stdout。根据您的要求,性能和线程可能是一个问题。 -
例如,您可以使用
std::cout.rdbuf()将输出重定向到文件。 -
此外,这个共享库看起来不像是商业质量的。如果你有这个库的源代码,你应该在禁用日志记录的情况下重新编译它。负责任的库将允许使用预处理器定义在一个地方发生这种情况。
-
@Joe 我正在尝试在我正在编写的 php 扩展中使用它。如果我为扩展定义一次,它会影响来自其他库的任何 cout。
标签: c++