C言語学習ポータル(無料版) 学習コンテンツ 関数リファレンス setvbuf

🔧 入出力 ・ stdio.h ・ C89

setvbuf の使い方

C言語 標準ライブラリ関数リファレンス(無料公開)

書式

int setvbuf(FILE *stream, char *buf, int mode, size_t size);

どんな関数か

ストリームのバッファリング方式(_IOFBF全バッファ/_IOLBF行バッファ/_IONBF無バッファ)とバッファ領域を設定する。頻繁な小さい出力をまとめて性能を上げたい時などに使う。 バッファを自前で用意することで、malloc失敗時の挙動まで制御したい高信頼なプログラムで使われる。

使用例

#include <stdio.h>
int main(void) {
    char buf[1024];
    setvbuf(stdout, buf, _IOFBF, sizeof buf);
    printf("buffered output\n");
    return 0;
}

つまずきやすい注意点

⚠️ 呼び出しはストリームに対する最初のI/O操作より前に行う必要がある。

アプリの関数リファレンスで引く(無料・登録不要) 関数一覧へ

setvbuf と一緒に使う関数

fflush出力ストリームのバッファ内容を実際の出力先へ書き出す。プログラム途中でログを即座に反映させたい時や、fclose前に明示… fopenファイルを開いてストリームを得る。モード文字列("r"読込/"w"書込/"a"追記、"b"でバイナリ)を指定する。失敗時…

同じ分類(入出力)の関数

fclose feof ferror fflush fgetc fgets fopen fprintf fputc fputs fread fscanf fseek ftell fwrite getchar

もっと先へ:ポインタ・メモリ・ファイル入出力・セキュアコーディングを含む全26トラックと、段位検定・模試のフルセットは完全版に収録しています。

完全版(BOOTH)を見る