fflush | Programming Place Plus C言語編 標準ライブラリのリファレンス

トップページC言語編標準ライブラリのリファレンス(名前順)

トップページC言語編標準ライブラリのリファレンス(ヘッダ別)


fflush関数

概要

バッファをフラッシュする。

ヘッダ

stdio.h

形式

int fflush(FILE* stream);

引数

stream

対象のストリーム。

ヌルポインタを指定すると、現在オープンされているストリームのうち、フラッシュの操作対象として適切なすべてのストリームに対してフラッシュを行う。

戻り値

成功したら 0、失敗したら EOF を返す。

詳細

ストリームがバッファリングされている場合、バッファ内に残されているデータを吐き出す(フラッシュする)。
フラッシュによる書き込みの際にエラーが発生した場合、エラー指示子をセットする。エラー指示子の状態は、ferror関数で調べられる。

注意

入力ストリームを対象とする場合の動作は未定義である。

使用例

#include <stdio.h>
#include <stdlib.h>

int main(void)
{
    char stdout_buf[BUFSIZ];

    // ラインバッファリングに変更
    setvbuf(stdout, stdout_buf, _IOLBF, sizeof(stdout_buf));

    char buf[80];
    printf("文字列を入力してください"); // 改行なし
    if (fflush(stdout) == EOF) {
        fputs("フラッシュに失敗しました。\n", stderr);
        exit(EXIT_FAILURE);
    }
    fgets(buf, sizeof(buf), stdin);
    printf("入力内容:%s\n", buf);
}

実行結果

文字列を入力してくださいHello
入力内容:Hello

関連

バッファリングの設定は、setbuf関数setvbuf関数で行える。

解説章

第43章


参考リンク


更新履歴

’2018/4/20 「NULL」という表記を「ヌルポインタ」に修正。

’2018/4/7 全体的に文書を見直し修正。

’2018/1/22 新規作成。



標準ライブラリのリファレンス(名前順)のトップページへ

標準ライブラリのリファレンス(ヘッダ別)のトップページへ

C言語編のトップページへ

Programming Place Plus のトップページへ



はてなブックマーク に保存 Pocket に保存 Facebook でシェア
X で ポストフォロー LINE で送る noteで書く
rss1.0 取得ボタン RSS 管理者情報 プライバシーポリシー
先頭へ戻る