c++ - 将 STDOUT 重定向到文件时缺少输出

标签 c++ windows batch-file cmd dos

我有一个批处理文件,我正在其中执行我的 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/

相关文章:

C++ 风格约定 : Parameter Names within Class Declaration

sql-server - 微软Azure+SQL数据库

windows - 如何获得精确的 ping 测量值

PHP执行批处理文件开始记录ffmpeg并杀死ffmpeg

batch-file - 使用批处理文件将标题添加到 CSV

batch-file - Sqlcmd 错误 "The filename, directory name, or volume label syntax is incorrect"

C++ 确保释放 vector 的技巧,但 GNU g++ 存在编译问题

c++ - 为什么boost mpl set允许非唯一类型

c++ - SFML 如何在保证 DLL 安全的情况下在其整个库中使用 std::?

c - 如何不在文件系统设备驱动程序中进入死锁?