【问题标题】:Can cluster chains end with 0 or 1?集群链可以以 0 或 1 结尾吗?
【发布时间】:2018-02-24 18:51:02
【问题描述】:

在我为 FAT32 制作正式模型的研究过程中,我遇到了一个使我的工作变得非常复杂的实现细节:在集群链的末端允许出现哪些值?

根据Microsoft's specification,“FAT中的空闲簇列表无非就是所有包含值0的簇的列表 在它们的 FAT 簇条目中。”,其推论是 0 不能是簇链末尾的值,只有 EOC 可以在那里。但是,Wikipedia states“否则,如果该值出现在簇链中(例如,在零长度或已删除文件的目录条目中),文件系统实现应该将其视为链结束标记。” 0,引用了一本晦涩的德语书籍的声明。

所以我真的很想问那些使用文件系统的人,他们是否认为 0(和 1)是实现中有效的集群链结束标记。

更新:我检查了 FAT32 的 Linux 内核实现,function for counting free clusters 似乎将全零视为空闲簇,不多也不少。

【问题讨论】:

    标签: fat32


    【解决方案1】:

    对 Linux FAT32 代码的进一步检查表明,以 0 结尾的簇链是 considered invalid clusterchains,并导致返回值 -EIO。

    【讨论】:

      猜你喜欢
      • 2020-02-03
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-08-10
      • 2014-09-30
      • 2021-12-25
      • 2014-12-01
      • 1970-01-01
      相关资源
      最近更新 更多