概要
バッファリングの方式を指定して、ファイルストリームが使用する入出力バッファを設定する。
modeには以下のいずれかを指定する。
| 値 | 説明 |
|---|---|
_IOFBF |
完全バッファリング。バッファが満たされたときに入出力を行う |
_IOLBF |
行バッファリング。改行文字が書き込まれたときに入出力を行う |
_IONBF |
バッファリングを行わない |
bufがヌルポインタでない場合、その領域がsizeバイトのバッファとして使用される。ヌルポインタの場合は、処理系がバッファを確保する。
戻り値
成功した場合は0を、modeが不正な値であるなどして失敗した場合は0以外を返す。
備考
- この関数は、ストリームを開いた後、入出力操作を行う前に呼び出さなければならない
bufとして渡す配列は、ストリームを閉じるまで生存していなければならない
例
#include <cstdio>
int main()
{
char buffer[BUFSIZ];
std::FILE* fp = std::fopen("test.txt", "w");
// 行バッファリングを指定する
int result = std::setvbuf(fp, buffer, _IOLBF, sizeof(buffer));
std::printf("%d\n", result);
std::fputs("Hello\n", fp);
std::fclose(fp);
}
出力
0