用文件模拟内存的读写问题

freshui 2009-08-16 11:14:40
因为内存都是动态随机访问的,给个地址就可以随机读写,

现在的问题是:读好办,fseek一下读就可以了,写怎么办?
如果我要修改一个数据,需要把访问所在位置及其之后的所有数据都要读出来再写回去吗?

有没有什么好的办法?
...全文
141 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
i_stone 2009-08-17
  • 打赏
  • 举报
回复
不是很清楚楼主的意思.如果只是写文件, 比如从文件的第1000个字节开始写,同样用SEEK(1000,CFILE::BEGIN),然后FILE.WRITE(BUF,LEN)就可以了啊
threewall 2009-08-17
  • 打赏
  • 举报
回复
一样记录相对位置就可以了
WizardOz 2009-08-17
  • 打赏
  • 举报
回复
写文件也是把文件指针移动到相应位置直接覆盖阿。
至于其后的数据,你不用管,除非你调用了文件截断功能,否则那些数据是不会丢失的。
kakashi0309 2009-08-17
  • 打赏
  • 举报
回复
指针不是都有类型的吗 要写的话也就是 sizeof(类型) 个字节
freshui 2009-08-17
  • 打赏
  • 举报
回复
ok, 测试了下,的确可以。
我记错了。
我印象中写中间的数据,会将之后的数据全冲掉。 :)

das_jack 2009-08-17
  • 打赏
  • 举报
回复
i/o操作本质都一样,这类问题,写个测试程序不就明白了吗
Arnold9009 2009-08-16
  • 打赏
  • 举报
回复
貌似不需要吧
内存写的时候,也是直接把指定地址的原有值覆盖掉的

文件写的时候,先移动指针到指定位置(类似内存的地址),然后写入指定数量的数据,这样操作
的话,我记得是直接覆盖掉那部分数据,其余的不影响的好像

70,039

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧