🔧 入出力 ・ stdio.h ・ C89
setvbuf の使い方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 と一緒に使う関数fclose
feof
ferror
fflush
fgetc
fgets
fopen
fprintf
fputc
fputs
fread
fscanf
fseek
ftell
fwrite
getchar
もっと先へ:ポインタ・メモリ・ファイル入出力・セキュアコーディングを含む全26トラックと、段位検定・模試のフルセットは完全版に収録しています。