fflush()
是一個 C 語言庫函數,用于將緩沖區的內容刷新到文件或流中
在程序中使用 printf()
或 putchar()
等函數時,輸出通常會被存儲在緩沖區,然后在適當的時候(例如緩沖區滿時或遇到換行符時)將其刷新到標準輸出(通常是屏幕)。這種機制可以提高 I/O 性能,但有時可能導致輸出順序不符合預期。
fflush(stdout)
可以確保緩沖區中的所有內容都被立即刷新到標準輸出。這在調試程序或需要實時顯示輸出的場景中非常有用。
下面是一個簡單的示例:
#include<stdio.h>
int main() {
printf("Hello, ");
fflush(stdout); // 立即將 "Hello, " 刷新到標準輸出
sleep(1); // 等待 1 秒
printf("world!\n");
return 0;
}
在這個示例中,fflush(stdout)
確保 "Hello, " 立即顯示在屏幕上,而不是等待整個程序執行完畢。