我有一个批处理文件,我正在其中执行我的 C++ 应用程序。
执行是这样的
program.exe arguments >log.log 2>&1
它运行良好,但日志文件和 cmd 窗口中缺少日志记录。当我删除重定向时,丢失的日志在 cmd 执行窗口中。此外,如果我在 Visual Studio 中运行该程序,则执行窗口中不会丢失任何输出。
我注意到在这种情况下丢失的消息是简单的 printf() 语句,但我怀疑可能还丢失了其他消息(这是一个大型企业系统)。
这看起来很奇怪,有什么想法吗?
谢谢。
最佳答案
Dataknife,是对的。我加了
fflush(stdout);
并且输出显示在定向输出中。
谢谢!
关于c++ - 将 STDOUT 重定向到文件时缺少输出,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18706004/