簡體   English   中英

即時將程序輸出重定向到文件,而無需從批處理文件緩沖

[英]Instant redirect program output to file without buffering from batch file

我有C程序,其中使用printf命令打印消息。 從批處理文件中,我使用

call myProgram.exe parms > myFile.txt

我需要在myProgram打印消息時每次(或幾乎每次)更新myFile 現在,在程序完成執行之前,我看不到文件中的任何內容,可能是因為有一些緩沖。 這是我的C程序, batch file還是操作系統的緩沖問題,如何解決?

stdio.h函數正在緩沖。 參見setvbuf 緩沖可能是特定於操作系統的,並且在重定向時可能會更改(例如,因為內部isatty(3)可以在printf等內部使用)。

請注意,此緩沖實際上是有用的,通常可以大大提高輸出速度。

最簡單的方法是不時調用fflush(3) 否則,在stdout上使用_IOFBF調用setvbuf

在程序開始附近使用setvbuf更簡單。 但是,在適當的地方調用fflush可能會更有效(因為使用更大的緩沖區應該更快)。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM