fflush − 刷新一個流
#include <stdio.h>
int fflush(FILE *stream);
函數 fflush 強制在所給的輸出流或更新流 stream 上,寫入在使用者空間緩沖的所有數據,使用流的底層寫功能函數。流的打開狀態不受影響。
如果參數 stream 是 NULL, fflush 刷新 所有 打開的流。
要使用非鎖定的對應版本,參見 unlocked_stdio(3) 。
成功執行返回 0,否則返回 EOF 並設置全局變量 errno 來指示錯誤發生。
EBADF |
Stream 不是一個打開的流,或者不是用於輸出。 |
函數 fflush 也可能失敗並置 errno 為 write(2) 指定的值。
注意 fflush() 僅僅刷新使用者空間的由 C 庫提供的緩沖。要保証數據被物理地存儲到磁碟上,必須也刷新核心緩沖。例如,使用 sync(2) 或 fsync(2).
函數 fflush() 遵循 ANSI X3.159-1989 (‘‘ANSI C’’) 標準。
fsync(2), sync(2), write(2), fclose(3), fopen(3), setbuf(3), unlocked_stdio(3)