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();