跳轉至內容

C++ 程式設計/程式碼/標準 C 庫/函式/fflush

來自華夏公益教科書,開放的書籍,開放的世界
語法
#include <cstdio>
int fflush( FILE *stream );

如果給定的檔案流是輸出流,則 fflush() 會將輸出緩衝區寫入檔案。如果給定的流是輸入型別,則 fflush() 的行為取決於使用的庫(例如,一些庫會忽略該操作,一些庫會報告錯誤,而另一些庫則會清除待處理的輸入)。

fflush() 在除錯時很有用(例如,如果程式在緩衝區傳送到螢幕之前出現段錯誤),或者它可以用來確保在長時間處理期間部分顯示輸出。

預設情況下,大多數實現都有stdout在每行末尾傳輸緩衝區,而stderr在有輸出時就會重新整理。如果存在重定向或管道,則此行為會發生改變,在這種情況下,呼叫 fflush(stdout) 有助於保持輸出流。

printf( "Before first call\n" );
fflush( stdout );
shady_function();
printf( "Before second call\n" );
fflush( stdout );
dangerous_dereference();
相關主題
fclose - fopen - fread - fwrite - getc - putc
華夏公益教科書