gpt4 book ai didi

c++ - 如何调整/加长/截断文件并在开头留出更多空间?

转载 作者:行者123 更新时间:2023-11-28 07:21:03 27 4
gpt4 key购买 nike

ftruncate() 的一个附带用途是,我们可以通过将零粘贴到文件末尾来调整文件大小,假设您请求一个比原始文件大的新文件。这似乎是调整文件大小的低成本解决方案,因为它修改了文件描述符等。当我们希望新创建的区域存在于文件末尾时,这是一个很好的解决方案(类似于 realloc() 为您提供原始内容之后的新空间)。

但是开始呢!如果我想调整文件大小但在文件开头获得新空间怎么办?我真的不敢相信我必须将所有数据简单地复制到文件的后面部分(或者我这样做吗?)。这将是一个非常耗时的操作!有没有更好的办法?

最佳答案

我不这么认为,尤其是在与操作系统无关的方式中。您将依赖操作系统来分配磁盘 block 并将其添加到文件使用的 block 列表中。 block 的大小是固定的,因此即使有一种方法,您的数据也必须与 block 大小相匹配。

关于c++ - 如何调整/加长/截断文件并在开头留出更多空间?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19473790/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com