_flushall
すべてのストリームをフラッシュし、すべてのバッファーをクリアします。
int _flushall( void );
戻り値
_flushall は、開いているストリーム (入力と出力) の数を返します。 エラーの戻り値はありません。
解説
既定では、_flushall 関数は、開いている出力ストリームに関連付けられているすべてのバッファーの内容を適切なファイルに書き込みます。 開いている入力ストリームに関連付けられているすべてのバッファーでは、現在の内容がクリアされます。これらのバッファーは通常はオペレーティング システムによって保持され、データをディスクに自動的に書き込むための最適なタイミングが決定されます。タイミングとしては、バッファーがいっぱいになったとき、ストリームが閉じられるとき、プログラムがストリームを閉じずに正常に終了したときがあります。
読み取りの後に _flushall が呼び出されると、新しいデータが入力ファイルからバッファーに読み込まれます。 すべてのストリームは、_flushall の呼び出し後、開いたままになります。
ランタイム ライブラリのディスクへのコミットの機能を使用すると、重要なデータをオペレーティング システムのバッファーではなく、ディスクに直接書き込むことができます。 プログラムのオブジェクト ファイルを Commode.obj にリンクすると、既存のプログラムを書き直さずに、この機能を有効にできます。 そのようにした実行可能ファイルでは、_flushall を呼び出すと、すべてのバッファーの内容がディスクに書き込まれます。 _flushall と fflush だけが、Commode.obj の影響を受けます。
ディスクへのコミットの機能の制御については、「ストリーム入出力」、「fopen」、および「_fdopen」を参照してください。
必要条件
関数 |
必須ヘッダー |
---|---|
_flushall |
<stdio.h> |
互換性の詳細については、「C ランタイム ライブラリ」の「互換性」を参照してください。
使用例
// 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 );
}