文件倒序的问题

飘飘白云
博客专家认证
2009-01-16 12:24:25
《windows核心编程》第17章介绍了4种将文件倒序的方法,可第三种方法怎没想也没想明白是怎么实现的?

方法3:一个文件,两个缓存:“如果使用这个方法,那么我们假设程序初始化时分配了两个独立的8 KB缓存。程序将文件的第一个8 KB读入一个缓存,再将文件的第二个8 KB 读入另一个缓存。然后进程将两个缓存的内容进行倒序,并将第一个缓存的内容写回文件的结尾处,将第二个缓存的内容写回同一个文件的开始处。每个迭代操作不断进行(以8 KB为单位,从文件的开始和结尾处移动文件块)。如果文件的长度不是16 KB的倍数,并且有两个8 KB的文件块相重叠,那么就需要进行一些特殊的处理。”

有人帮忙解释下么?
...全文
169 4 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
submarine2007 2009-01-16
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 kesalin 的回复:]
后面的迭代操作如何进行呢?

[/Quote]

然后读取 3, 4 13, 14 倒序,


16 15 14 13 5 6 7 8 9 10 11 12 4 3 2 1
^ ^
go_go_vip 2009-01-16
  • 打赏
  • 举报
回复
迭代就是循环遍历的意思。
飘飘白云 2009-01-16
  • 打赏
  • 举报
回复
后面的迭代操作如何进行呢?
brookmill 2009-01-16
  • 打赏
  • 举报
回复
假定文件有16字节,1,2,……,15,16

两个独立的2字节缓存
把前两个字节1、2读入一个缓存,最后两个字节15、16读入另一个缓存,
第一个缓存倒序成2、1然后写到文件结尾,第二个缓存倒序成16、15,然后写到文件开头

3,882

社区成员

发帖
与我相关
我的任务
社区描述
C/C++ 其它技术问题
社区管理员
  • 其它技术问题社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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