【发布时间】:2013-05-24 11:33:54
【问题描述】:
我正在开发带有FAT16 文件系统的基于闪存的USB 大容量存储设备。
它工作正常,但是我很难理解 FAT 段上发生了什么。
当我开始时,我在根目录上有一个 56 字节长的文件,它长 32 位,数据存储在第二个簇上(0 和 1 不能在 FAT 中使用)。
如果我查看我看到的 FAT 段的内存转储:
f8 ff ff ff ff ff 00 00 00 00 00 00 00 00 00 00 00... zeros until the end
据我了解,最后一个 0xFFFF 表示该簇是该文件链中的最后一个簇。
到目前为止一切顺利。
但是...当我将实际文件的大小扩展为 4,032 字节时,FAT 段变成了
f8 ff ff 00 f0 ff 05 60 00 07 f0 ff 00 00 00 00 00... zeros until the end
谁能解释一下这里发生了什么?
我看到了一些我无法解释的事情:
1.为什么 4 个系统保留字节会发生变化?
2。我看不到任何 0xFFFF,这意味着集群链没有尽头?
如果对任何人有帮助,块大小为 512 字节,文件系统被格式化为每个集群 2 个段。
【问题讨论】:
标签: filesystems fat fat16