函数名: 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


点赞(0)

C语言网提供由在职研发工程师或ACM蓝桥杯竞赛优秀选手录制的视频教程,并配有习题和答疑,点击了解:

一点编程也不会写的:零基础C语言学练课程

解决困扰你多年的C语言疑难杂症特性的C语言进阶课程

从零到写出一个爬虫的Python编程课程

只会语法写不出代码?手把手带你写100个编程真题的编程百练课程

信息学奥赛或C++选手的 必学C++课程

蓝桥杯ACM、信息学奥赛的必学课程:算法竞赛课入门课程

手把手讲解近五年真题的蓝桥杯辅导课程

Dotcpp在线编译      (登录可减少运行等待时间)