c - 在文件复制的上下文中字符缓冲区的用途是什么? [C]

标签 c buffer

我正在开发一个小程序,它只是应该获取一个文本文件并复制它。我的作业指出我应该在此期间使用字符缓冲区,但我不太确定为什么。

这仅仅是因为我们并不总是能够为任意大小的文件分配足够的空间吗?我正在复制的文本文件很小,但为了使其正常工作,它应该有一个缓冲区?如果是这样,我是否打算简单地将一定数量的文件分配到缓冲区中,将其复制到新文件,然后返回并获取原始文件的下一位,然后重复?

我认为这听起来是对的。如果是这样,如何确定合适的缓冲区大小?

最佳答案

Is it simply because we will not always be able to allocate enough space for a file of arbitrary size? The text file I'm copying is tiny, but for this to work in general, it should have a buffer? If so, is it intended that I simply allocate a certain amount of the file into the buffer, copy it over to the new file, then go back and grab the next bit of the original file, and repeat?

是的。小文件或大文件,你必须有一个地方来放置你读到的东西。然后,您必须将读取的内容写入下一个文件。缓冲区充当您已读取的内容和将要写入的内容的存储,因此您的位置正确。您的缓冲区应该有多大取决于您。您想进行大量的小型读写操作并节省 RAM 吗?或者您应该耗尽所有 RAM 来进行批量读/写吗?这是你的选择。

关于c - 在文件复制的上下文中字符缓冲区的用途是什么? [C],我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34781521/

相关文章:

c - 程序在函数循环后停止

c - 在 GCC 进行的每次优化后获取汇编代码?

Android:从文件缓冲区播放视频

iphone - 应用程序处于后台状态时 AVPlayer 处理缓冲区

c - 如何在 C 中分配临时小内存段

C编程: write to file without buffer

在 C 中将 'BigStruct' 转换为 'SmallStruct'(具有不同大小的静态数组的类似结构)

c - 匿名结构指针

c - 在没有新 malloc 的情况下从现有字符串动态构造一个数组

c++ - streambuf、ostream、ostreambuf、istream、istreambuf 和关联的迭代器