【发布时间】:2012-04-12 13:57:14
【问题描述】:
这是我在理论上一直在努力解决的问题,但在网上没有找到任何好的答案。我之前用二叉树编写过程序,这很简单:每个节点都有两个链接。但是现在我正在为一个项目计划一个基于树的文件系统,但我不确定如何进行。问题来了:
我想要一棵树,它具有指向叶子文件和内部节点子目录的指针(我认为这就是 Unix 的做法?)。但是如果用户要创建新的文件或目录,则必须增加父节点中的链接数。
当我设计我的结构时,我该如何解决这个问题?我不确定我的选择是什么,除了硬编码,比如 10 个链接和限制目录成员。任何指针? (哈,明白了吗?)
如果没有,有没有人知道有什么好的资源可以让我了解更多相关信息?就像我说的,到目前为止,我的互联网搜索都没有结果。
【问题讨论】:
-
UNIX 通常通过使目录成为任意长度的文件来做到这一点,其内容是每个子文件/目录的名称/inode 编号
-
如果你真的想设计一个基于树的文件系统,可以像 btrfs 那样做,所有的东西都存储在一个大的 b+tree 中。不平凡的 grock,但非常优雅。
标签: c tree filesystems