我正在unix系统下编写守护进程,并在代码中使用std::cout
来调试no silent
模式。当我在daemon/silence mode
,close(STDIN_FILENO)
,STDOUT_FILENO
和STDERR_FILENO
开始此过程时,可以节省打印到std::cout
的资源。似乎在关闭时,它写入/dev/null
,不是吗?在静默模式下避免资源开销是否正确且最佳方法?或者我可能需要使用全局silent flag
并在每次调用std::cout
之前检查它?或其他解决方案?谢谢,对不起我的英语。
答案 0 :(得分:1)
std::cout
来实现 STDOUT_FILENO
。关闭后者打破了前者。