setbuf函数
概要:
#include <stdio.h> void setbuf(FILE * restrict stream, char * restrict buf);
描述:
流缓冲是输入输出操作和物理文件之间起中介作用的数据块;以输出缓冲为例,数据先传输到缓冲,当缓冲填满后再进行刷新,将数据输出到物理文件。
setbuf函数可以设置参数stream指向流的缓冲;应在流和打开的文件关联后,并且未进行任何操作(失败的setbuf函数调用除外)前调用setbuf函数。
除了setbuf函数不返回值外,在参数buf不是空指针的情况下setbuf函数等价于setvbuf(stream, buf, _IOFBF, BUFSIZ),或者在参数buf是空指针的情况下等价于setvbuf(stream, NULL, _IONBF, 0)。
流缓冲可以使用fflush函数显式刷新。当调用fclose、freopen函数或者程序正常终止(注:这里程序正常终止是指main函数返回给宿主环境或者调用exit函数终止程序。)时也会自动刷新缓冲。
参数:
FILE * restrict stream
指向一个打开的流的指针。
char * restrict buf
指向缓冲的指针,缓冲大小至少为BUFSIZ个字节。
返回值:
无。
范例:
|
|
结果:
创建两个内容均为"The start is what stops most people."的文件;不同的是pFileOne是全缓冲的,数组buffer用作缓冲,而pFileTwo是无缓冲的。
相关内容:
BUFSIZ | 表示缓冲大小的宏。 |
setvbuf | 设置流缓冲的函数。 |