トップページ > キーワード検索 > setvbuf()
C言語規格
C言語(その他)
プログラム
その他
setvbuf()
機能 ストリームのバッファの方法を設定することを表す。
定義 #include <stdio.h>

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

※C99規格では以下の定義となる
int setvbuf ( FILE * restrict stream, char * restrict buf, int mode, size_t size );
引数
stream設定されるストリーム(FILE)へのポインタ
buf設定するバッファ(char型の配列)へのポインタ
NULLの場合は自動的にsize分のバッファを内部で割り当てる
modeバッファリング方法を指定。以下のいずれか
方法機能
_IOFBF入出力を完全バッファリングする
_IOLBF入出力を行バッファリングする
_IONBF入出力をバッファリングしない
sizeバッファのサイズ
戻り値 成功した場合は、0 を返す。
失敗した場合は、0以外を返す。
実装例
#include <stdio.h>

int main(void)
{
    char buf[ BUFSIZ ];
    
    /* 標準出力を完全バッファリングする */
    setvbuf( stdout, buf, _IOFBF, BUFSIZ );
    printf("Hello");     /* バッファに蓄積される */
    printf(" World.\n"); /* バッファに蓄積される */
    
    /* 標準出力を行バッファリングする */
    setvbuf( stdout, buf, _IOLBF, BUFSIZ );
    printf("Hello");     /* バッファに蓄積される         */
    printf(" World.\n"); /* 改行を契機に画面に出力される */
    
    /* 標準出力を非バッファリングする */
    setvbuf( stdout, NULL, _IONBF, 0 );
    printf("Hello");     /* 画面に出力される */
    printf(" World.\n"); /* 画面に出力される */
    
    setvbuf( stdout, NULL, _IOFBF, BUFSIZ ); /* バッファを自動確保する */
    
    return 0;
}
実行結果
Hello World.
Hello World.
Hello World.





inserted by FC2 system