函数名: setvbuf
头文件:<stdio.h>
函数原型: int setvbuf(FILE *stream, char *buf, int type, unsigned size);
功 能: 把缓冲区与流相关
参数: FILE *stream 要关联的流
char *buf 要相关联的缓冲区
int type 关联的类型
unsigned size 关联的大小
返回值:成功 返回0 ,失败 返回非0
程序例: 将缓冲区与流实现指定大小,指定类型的关联
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 | #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; } |
运行结果
1 2 3 | 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、信息学奥赛的必学课程:算法竞赛课入门课程
手把手讲解近五年真题的蓝桥杯辅导课程