C、C++操作大文件时(256M)指定位置写入而不覆盖后面数据

怎么才能实现实现:文件256M如果方法能够操作的文件越大越好,速度越快越好指定位置追加(不覆盖后面内容)指定位置是程序设置的(可以设置)指定位置开始的某一段数据删除。... 怎么才能实现
实现:文件256M 如果方法能够操作的文件越大越好,速度越快越好
指定位置追加(不覆盖后面内容)指定位置是程序设置的(可以设置)
指定位置开始的某一段数据删除。
展开
 我来答
歪瑞顾K
2014-11-20 · TA获得超过2905个赞
知道大有可为答主
回答量:2731
采纳率:33%
帮助的人:2187万
展开全部
创建一个文件,然后写入无效数据0,比如文件10M。

然后随意seek 也就是移动当前写入指针,范围0-10M的范围,如果移动到结尾了就不能继续往后了

如果是在结尾,则是追加文件内容
如果是在中间,则写入10B的数据,就覆盖10B的数据。

后面的数据是不会自动搬家的。

如果这个问题好解决,windows操作系统就不需要用久了就需要清理磁盘碎片了
windows操作系统的文件内容是分块存放的,实际存储有时候文件是不连续的,通过一些索引序号的措施让你能够连续读取数据。

如果你想要中间插入数据,想想链表的思路吧。
psxf91
2014-11-20 · TA获得超过428个赞
知道小有建树答主
回答量:558
采纳率:100%
帮助的人:479万
展开全部
文件是顺序存储,不可能写入不覆盖的,必须自己实现后面数据的搬移。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式