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