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

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

陪伴而非守候
浏览 105回答 1
1回答

慕哥6287543

现代计算机都用虚拟存储,输出缓冲区应会自己调节,只要你的变量内存空间分配没问题,输出缓冲应没问题.就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);}
打开App,查看更多内容
随时随地看视频慕课网APP