的一个附带用途ftruncate()
是,我们可以通过在文件末尾添加零来调整文件大小,假设您请求的新文件大小大于原始文件大小。这似乎是调整文件大小的低成本解决方案,因为它修改了文件描述符等。当我们希望新创建的区域存在于文件末尾时,这是一个很好的解决方案(类似于如何realloc()
在之后为您提供新空间您的原始内容)。
但是一开始呢!如果我想调整文件大小但在文件开头获取新空间怎么办?我真的不敢相信我必须简单地将所有数据复制到文件的后面部分(或者我是吗?)。这将是一个非常耗时的操作!有没有更好的办法?