免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
12
最近访问板块 发新帖
打印 上一主题 下一主题

[C] 文件写入问题 [复制链接]

论坛徽章:
0
11 [报告]
发表于 2013-12-11 11:35 |只看该作者
sxcong 发表于 2013-12-11 10:55
如果内容很大,保存在内存里,增减都很容易,指针移个位置就行。但在文件里读出再写入就很麻烦了。

关键我希望当文件写满后,再继续写入时,希望把文件前面的内容删掉,然后把剩下的内容往前移,新写入的东西接在文件后面。

论坛徽章:
8
CU大牛徽章
日期:2013-04-17 10:59:39CU大牛徽章
日期:2013-04-17 11:01:45CU大牛徽章
日期:2013-04-17 11:02:15CU大牛徽章
日期:2013-04-17 11:02:36CU大牛徽章
日期:2013-04-17 11:02:58技术图书徽章
日期:2013-12-04 10:48:50酉鸡
日期:2014-01-03 10:32:30辰龙
日期:2014-03-06 15:04:07
12 [报告]
发表于 2013-12-11 12:00 |只看该作者
本帖最后由 shan_ghost 于 2013-12-11 12:04 编辑
后知后觉gogogo 发表于 2013-12-11 11:35
关键我希望当文件写满后,再继续写入时,希望把文件前面的内容删掉,然后把剩下的内容往前移,新写入的东 ...


这只能设计一个专门的文件格式,比如用开头的4个字节记录文件开头所在位置;然后把文件剩余部分当一个环形缓冲来玩。


文件最终是以扇区为单位写在磁盘上的。
除非你黑进文件分配表,以扇区为单位做“删除文件前面一个扇区的内容”操作(很危险,而且不同文件系统之间不能兼容);否则,你的这个想法最终只能变成“每追加一个单位的信息到文件末尾,就必须花费几秒钟时间往磁盘上写数百兆数据”——缓慢、笨拙、一旦遇到断电或其它故障就丢失信息,而且影响磁盘寿命。

简单说,如果不允许搞专用格式,就是“这TM就是个完全不懂磁盘工作原理的人才会提的无理需求,谁提的谁来做,反正老子不接这活”

论坛徽章:
0
13 [报告]
发表于 2013-12-11 13:20 |只看该作者
回复 12# shan_ghost
额,明白了,本人菜鸟,对磁盘存储方面的东西确实是不太明白,让各位见笑了


   
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP