为了账号安全,请及时绑定邮箱和手机立即绑定

怎样可以知道缓冲区是否满了?

怎样可以知道缓冲区是否满了?

C
陪伴而非守候 2023-03-16 16:12:11
C语言(用的是turboc2.0)中,对硬盘写数据(比如说用fputs)时,先把数据装入内存缓冲区中,待缓冲区满了再写到硬盘上。我的问题是:有没有什么函数或标志可以测试内存缓冲区满了没有?(我问这个问题是因为我在编一个程序,其中,要把很大一个文件写到硬盘上,估计缓冲区里一次装不下。这样,我就把fputs写在了for循环里。可是,对硬盘写东西较内存里操作要慢呀。于是,我就想到了用delay。这样,我就要知道什么时候缓冲区满了。等满了就可以用delay了。)
查看完整描述

1 回答

?
慕哥6287543

TA贡献1831条经验 获得超10个赞

现代计算机都用虚拟存储,输出缓冲区应会自己调节,只要你的变量内存空间分配没问题,输出缓冲应没问题.
就fputs来说,你可能已用fgets(或别的方法)得到了这个长string,肯定有个地方存这个string.
例如:
FILE *fin, *fout;
char *buff;
int NN;
buff = (char *) malloc(NN * sizeof(char));
fin = fopen(..); fout = fopen(....);
fgets (buff,NN,fin);
fputs (buff,fout);
如果你在分配buff时没问题,则输出也没问题.

buff分配有无问题检测是:
if ( !buff) {
printf("No enough memory for buff\n"); exit(1);
}

查看完整回答
反对 回复 2023-03-18
  • 1 回答
  • 0 关注
  • 103 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信