gpt4 book ai didi

c - 即时将程序输出重定向到文件,无需从批处理文件中缓冲

转载 作者:太空宇宙 更新时间:2023-11-04 03:53:57 25 4
gpt4 key购买 nike

我有 C 程序,其中使用 printf 命令打印消息。从批处理文件中调用我的程序

call myProgram.exe parms > myFile.txt

myProgram 打印消息时,我需要每次(或几乎每次)更新 myFile。现在,在程序完成执行之前我看不到文件中的任何内容,可能是因为一些缓冲。这是我的 C 程序、批处理文件 还是操作系统造成的缓冲问题,我该如何解决?

最佳答案

stdio.h 函数正在缓冲。参见 setvbuf .缓冲可能是特定于操作系统的,并且可能会在重定向时发生变化(例如,因为内部 isatty(3) 可以在 printf 等中使用...)。

请注意,这种缓冲实际上很有用,通常可以大大加快输出速度。

最简单的方法是调用fflush(3)时。否则在 stdout 上使用 _IOFBF 调用 setvbuf

在程序开始附近使用 setvbuf 更简单。但是,在适当的地方调用fflush 可能更有效(因为使用更大的缓冲区应该更快)。

关于c - 即时将程序输出重定向到文件,无需从批处理文件中缓冲,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18612043/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com