【发布时间】:2013-06-19 02:50:41
【问题描述】:
我很惊讶地说,我还没有找到一个合理的解决方案来解决如何使用 C++ 标准库来调整文件大小。必须从原始文件中读取数据,然后将其写入另一个文件,这似乎是完全愚蠢和浪费的。我只是想要一个调整大小的方法来切断超出该大小的数据......有什么可以做到这一点吗?
编辑:如果我必须使用上面解释的方法,我用来读/写的缓冲区应该有多大?我显然无法一次读取整个文件,因为我在这里处理的是相当大的文件。
【问题讨论】:
-
这会导致文件碎片,您必须清理这些碎片,但您可以用 EOF 字符覆盖文件末尾?
-
这里的大局是什么? “调整大小”有很多含义!
-
您的项目中是否允许调用 OS API? Linux 有一个系统调用
truncate将文件设置为指定长度。我认为 Windows 会提供比较 API。顺便说一句,你的平台是什么? -
truncate()in<unistd.h>是 POSIX C 库的一部分,可以吗? -
@Summer_More_More_Tea 调用 OS API 是可以的,但这是一个跨平台项目。只要我有适用于每个平台的解决方案,我就可以使用预处理器。