【发布时间】:2012-11-15 09:07:39
【问题描述】:
我有一个使用 std::cout 打印到屏幕的 c++ 程序。
有时我需要将其作为服务运行。当 cout 作为 Windows 服务运行时,有什么办法可以看到它的输出?
将输出重定向到文件或某种调试程序是理想的。
显然我可以用写入文件的函数替换 cout,这可能就是我要做的,但我很想知道是否有其他解决方案。
【问题讨论】:
-
在 Unix 系统上,您可以在启动进程时重定向标准输出,但我不熟悉 Windows 中的此类操作。可能,它应该存在。
-
在我开始流程或管道之后重定向标准输出正是我想要的。
-
尝试对 Windows 中的此类功能进行一些研究。应该有这样的东西。我会在谷歌上搜索“在 Windows 中重定向进程的输出”。
-
@KirilKirov:确实存在,
SetStdHandle。在这种情况下,它并不完全是 _re_direction,因为服务最初没有标准 I/O 句柄。