FAT32中含目录项的簇的FAT条目取值及长文件名跨簇疑问
FAT簇与FAT条目关联问题解答
存目录项的簇10对应的FAT条目取值
首先明确:FAT表前两个条目为保留项——第一个存储媒体类型(如0xF8代表硬盘),第二个是FAT自身的结束标记(FAT32下为0xFFFFFFF8);从第3个条目开始,数据区的簇N对应FAT表的第N个条目(即FAT[N])。
若簇10是根目录的扩展簇(FAT32的根目录以文件形式占用数据区簇,不再是固定区域),且簇内全为目录项:
- 若簇10是根目录的最后一个簇,
FAT[10]会设为终止标记(FAT32下取值范围是0xFFFFFFF8~0xFFFFFFFF,通常用0xFFFFFFFF); - 若根目录还有后续簇,
FAT[10]会指向根目录的下一个簇号; - 绝对不会是空白条目
0x00000000——该值代表簇未被分配使用,而簇10已存储目录项,属于已分配状态。
长文件名跨簇时的FAT条目取值
当长文件名目录项从簇10末尾延伸至簇11,说明簇11是根目录的下一个连续簇,此时FAT[10]的取值就是11,表示根目录的存储从簇10延续到簇11。簇11对应的FAT条目则根据是否为根目录最后一个簇,设为终止标记或下一个簇号。
内容的提问来源于stack exchange,提问作者milkchunks
相关产品推荐
相关产品推荐

