fflush
ストリームをフラッシュします。
int fflush(
FILE *stream
);
パラメーター
- stream
FILE 構造体へのポインター。
戻り値
fflush は バッファーがフラッシュが正常に終了した場合は 0 を返します。 値 0 は、指定したストリームにバッファーを持たない return または読み取り専用に開かれている場合。 EOF の戻り値はエラーを示します。
注意
fflush が EOFが返された場合、データ消失が書き込みのエラーが原因である可能性があります。重大なエラー ハンドラーを設定すると、バッファリングを setvbuf 関数と回転または _openなど、低水準 I/O ルーチンを使用しても安全であるストリーム I/O の代わりに _closeと _write は機能します。
解説
fflush 関数は、ストリームをフラッシュします。 stream に関連付けられたファイルが出力で開いている場合、fflush はそのファイルにストリームに関連付けられているバッファーの内容を書き込みます。 ストリームに Input で開いている場合、fflush はバッファーの内容を消去します。 fflush は streamに対して ungetc への前の呼び出しの影響を無効にします。 また、fflush(NULL) は出力に開くすべてのストリームをフラッシュします。 ストリームを呼び出した後で開いたままになります。 fflush は いないストリームには影響しません。
バッファーはディスクに自動的にデータを書き込む最適なタイミングを決定するオペレーティング システムで一般的に保持され、: バッファーがいっぱいになると、ストリームを閉じるか、またはプログラムがストリームを閉じずに正常に終了したとき。 ランタイム ライブラリのディスクのコミット機能、重要なデータがオペレーティング システム バッファーではなくディスクに直接書き込むことを確認できるようになります。 既存のプログラムの書き換えなしで、COMMODE.OBJ とプログラムのオブジェクト ファイルをリンクすることで、この機能を有効にできます。 そのようにした実行可能ファイルでは、_flushall を呼び出すと、すべてのバッファーの内容がディスクに書き込まれます。 _flushall COMMODE.OBJ と fflush のみに影響されます。
ディスクへのコミットの機能の制御については、「ストリーム入出力」、「fopen」、および「_fdopen」を参照してください。
この関数は、呼び出し元のスレッドをロックし、スレッド セーフです。 ロックしないバージョンについては、「_fflush_nolock」を参照してください。
必要条件
関数 |
必須ヘッダー |
---|---|
fflush |
<stdio.h> |
互換性の詳細については、「C ランタイム ライブラリ」の「互換性」を参照してください。
使用例
// crt_fflush.c
#include <stdio.h>
#include <conio.h>
int main( void )
{
int integer;
char string[81];
// Read each word as a string.
printf( "Enter a sentence of four words with scanf: " );
for( integer = 0; integer < 4; integer++ )
{
scanf_s( "%s", string, sizeof(string) );
printf( "%s\n", string );
}
// You must flush the input buffer before using gets.
// fflush on input stream is an extension to the C standard
fflush( stdin );
printf( "Enter the same sentence with gets: " );
gets_s( string, sizeof(string) );
printf( "%s\n", string );
}
これは、テストです。 これは testThis
FakePre-1af76b6b5fa6466ba7ce65a75c0d3928-b90c403cbee341ecb2145759383b0c08