_flushall

清除所有資料流;清除所有緩衝區。

語法

int _flushall( void );

傳回值

_flushall 會傳回開啟的資料流數目 (輸入和輸出)。 沒有傳回錯誤。

備註

根據預設,_flushall 函式會將與開啟輸出資料流相關聯之所有緩衝區的內容寫入至適當的檔案。 會清除與開啟之輸入資料流相關聯的所有緩衝區中的目前內容 (這些緩衝區通常是由作業系統所維護,以判斷將資料自動寫入至磁碟的最佳時機︰緩衝區已滿時、關閉資料流時,或程式正常結束而未關閉資料流時)。

如果在呼叫 _flushall 之後讀取,則會將新資料從輸入檔讀入緩衝區。 呼叫 _flushall 之後,所有資料流都會保持開啟狀態。

執行階段程式庫的認可到磁碟功能可讓您確保將重大資料直接寫入至磁碟,而不是作業系統緩衝區。 若未重寫現有的程式,您可以將程式的物件檔與 Commode.obj 連結,以啟用此功能。在產生的可執行檔中,呼叫 以 _flushall 將所有緩衝區的內容寫入磁片。 Commode.obj 只會影響 _flushallfflush

如需控制認可到磁片功能的資訊,請參閱 串流 I/O fopen_fdopen

根據預設,此函式的全域狀態會限定于應用程式。 若要變更此行為,請參閱 CRT 中的全域狀態。

需求

函式 必要的標頭
_flushall <stdio.h>

如需相容性詳細資訊,請參閱相容性

範例

// crt_flushall.c
// This program uses _flushall
// to flush all open buffers.

#include <stdio.h>

int main( void )
{
   int numflushed;

   numflushed = _flushall();
   printf( "There were %d streams flushed\n", numflushed );
}
There were 3 streams flushed

另請參閱

資料流 I/O
_commit
fclose, _fcloseall
fflush
setvbuf