函数名: setvbuf
头文件:<stdio.h>
函数原型: int setvbuf(FILE *stream, char *buf, int type, unsigned size);
功 能: 把缓冲区与流相关
参数: FILE *stream 要关联的流
char *buf 要相关联的缓冲区
int type 关联的类型
unsigned size 关联的大小
返回值:成功 返回0 ,失败 返回非0
程序例: 将缓冲区与流实现指定大小,指定类型的关联
#include<stdio.h> int main(void){ char bufr[512]; FILE *input = fopen("file.in", "rb+"); if(!input){ printf("can not open the file\n"); } FILE *output = fopen("file.out", "w"); if(!output){ printf("can not open the file\n"); } if (setvbuf(input, bufr, _IOFBF, 512)){ printf("failed to set up buffer for input file\n"); }else{ printf("buffer set up for input file\n"); } if (setvbuf(output, NULL, _IOLBF, 512)) { printf("failed to set up buffer for output file\n"); }else{ printf("buffer set up for output file\n"); } fclose(input); fclose(output); return 0; }
运行结果
can not open the file failed to set up buffer for input file buffer set up for output file
C语言网提供由在职研发工程师或ACM蓝桥杯竞赛优秀选手录制的视频教程,并配有习题和答疑,点击了解:
一点编程也不会写的:零基础C语言学练课程
解决困扰你多年的C语言疑难杂症特性的C语言进阶课程
从零到写出一个爬虫的Python编程课程
只会语法写不出代码?手把手带你写100个编程真题的编程百练课程
信息学奥赛或C++选手的 必学C++课程
蓝桥杯ACM、信息学奥赛的必学课程:算法竞赛课入门课程
手把手讲解近五年真题的蓝桥杯辅导课程