c语言 将字符串写到缓冲区,C语言文件读写操作中缓冲区问题和setbuf函数详解

本文详细介绍了C语言中如何管理文件缓冲区,包括清除缓冲区的fflush()和flushall()函数,以及设置缓冲区的setbuf()和setvbuf()函数。还讲解了文件指针的移动和随机读写操作,强调了在使用setbuf函数时避免缓冲区错误的两种方法。
摘要由CSDN通过智能技术生成

清除和设置文件缓冲区

(1).清除文件缓冲区函数: int fflush(FILE

*stream); int flushall();

fflush()函数将清除由stream指向的文件缓冲区里的内容,常用于写完一些数据后,立即用该函数清除缓冲区,以免误操作时,破坏原来的数据。

flushall()将清除所有打开文件所对应的文件缓冲区。

(2).设置文件缓冲区函数 void setbuf(FILE

*stream,char *buf); void setvbuf(FILE *stream,char *buf,int

type,unsigned size);

这两个函数将使得打开文件后,用户可建立自己的文件缓冲区,而不使用fopen()函数打开文件设定的默认缓冲区。

对于setbuf()函数,buf指出的缓冲区长度由头文件stdio.h中定义的宏BUFSIZE的值决定,缺省值为512字节。当选定buf为空时,setbuf函数将使的文件I/O不带缓冲。而对setvbuf函数,则由malloc函数来分配缓冲区。参数size指明了缓冲区的长度(必须大于0),而参数type则表示了缓冲的类型,其值可以取如下值:

type 值 含义 _IOFBF 文件全部缓冲,即缓冲区装满后,才能对文件读写 _IOLBF

文件行缓冲,即缓冲区接收到一个换行符时,才能对文件读写 _IONBF

文件不缓冲,此时忽略buf,size的值,直接读写文件,不再经过文件缓冲区缓冲

文件的随机读写函数

前面介绍的文件的字符/字符串读写,均是进行文件的顺序读写,即总是从文件的开头开始进行读写

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值