1、屏蔽std::cout
参见:[url]http://stackoverflow.com/questions/8246317/redirecting-function-output-to-dev-null[/url]
有时我们要将自己的程序嵌入到其他服务中去,服务一般会有自己的日志系统,但为了我们自己的代码可以单独调试,还是使用cout方便。
当我们调试完自己的代码后,可以通过以下方式屏蔽cout的输出:
[b]方法1:重定向(输出到null设备自然就没输出了):[/b]
[quote] ofstream file("/dev/null");
//save cout stream buffer
streambuf* strm_buffer = cout.rdbuf();
// redirect cout to /dev/null
cout.rdbuf(file.rdbuf());[/quote]
[b]方法2:设置输出流状态为fail[/b]
[quote] std::cout.setstate(std::ios::failbit) ;
foo();
std::cout.clear() ;[/quote]
参见:[url]http://stackoverflow.com/questions/8246317/redirecting-function-output-to-dev-null[/url]
有时我们要将自己的程序嵌入到其他服务中去,服务一般会有自己的日志系统,但为了我们自己的代码可以单独调试,还是使用cout方便。
当我们调试完自己的代码后,可以通过以下方式屏蔽cout的输出:
[b]方法1:重定向(输出到null设备自然就没输出了):[/b]
[quote] ofstream file("/dev/null");
//save cout stream buffer
streambuf* strm_buffer = cout.rdbuf();
// redirect cout to /dev/null
cout.rdbuf(file.rdbuf());[/quote]
[b]方法2:设置输出流状态为fail[/b]
[quote] std::cout.setstate(std::ios::failbit) ;
foo();
std::cout.clear() ;[/quote]