文法:
#include <cstdio> int fflush( FILE *ストリーム );
もしも、渡されたファイルストリームが、出力ストリームだった場合には、fflush()関数は、出力バッファに溜まったデータをファイルに書き出します。
もしも、渡されたストリームが入力用のものだった場合には、fflush()の動作は未定義です。
fflush()はデバッグ時に便利です。もしもプログラムがバッファに溜まったデータをスクリーンに出力する前にセグメンテーション違反で落ちてしまうと、読むことができないのですが、fflush()を使うと解決することができます。この場合は、デバッグ出力をした直後にfflush(stdout)を呼ぶことで、出力と同時に強制的に表示することができます。
printf( "最初の呼び出し前\n" ); fflush( stdout ); shady_function(); printf( "二回目の呼び出し前\n" ); fflush( stdout ); dangerous_dereference();