原函数:
int setvbuf(FILE *stream, char *buffer, int mode, size_t size)
函数说明:int setvbuf(FILE *stream, char *buffer, int mode, size_t size) 定义了如何流应该被缓冲。
参数:
- stream -- 是一个文件对象标识一个开放的流指针。
- buffer -- 是用户分配的缓冲区。如果设置为NULL,该函数会自动分配一个指定大小的缓冲区。
- mode -- 此指定文件缓冲模式:
![04aa91d26d7fd8af8a1fac9a1b9eaa86.png](https://img-blog.csdnimg.cn/img_convert/04aa91d26d7fd8af8a1fac9a1b9eaa86.png)
返回值:
函数返回其他成功返回0,则返回非零值。
如何使用setvbuf()函数:
#include
int main() {
char buff[1024];
memset( buff, '', sizeof( buff ));
fprintf(stdout, "Going to set full buffering on ");
setvbuf(stdout, buff, _IOFBF, 1024);
fprintf(stdout, "This is myfoal.com ");
fprintf(stdout, "This output will go into buff ");
fflush( stdout );
fprintf(stdout, "will come after sleeping 5 seconds ");
sleep(5);
return 0;
}
编译和运行上面的程序,产生如下结果:
Going to set full buffering on
This is myfoal.com
This output will go into buff
will come after sleeping 5 seconds