我正在开发一个基于闪存的USB海量存储设备和FAT16文件系统。它正常工作,但是我很难理解脂肪部分发生了什么。
开始时,我有一个文件,根目录上有56个字节长,它有32位长,数据存储在第二个集群中(0和1不能在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字节,那么文件系统将被格式化为每个集群的两个段。
发布于 2013-06-10 09:05:54
我觉得这是FAT12,而不是FAT16。
that 12-16的区别在于集群的数量,而不是引导扇区中写入的字符串。
https://stackoverflow.com/questions/16809966
复制相似问题