我正在尝试在辅助存储器(硬盘)上构建四叉树数据结构(或者我们只是说一棵树)。
我有一个 C++ 程序可以这样做,我使用 fopen 来创建文件。此外,我正在使用 tesseral 编码将每个单元格存储在一个文件中,该文件以其相应的代码命名,以将其存储在磁盘上的一个目录中。
问题是在创建大约 1,100 个文件后,fopen 只返回 NULL 并停止创建新文件。我可以在该目录中手动创建更多文件,但使用 C++ 无法创建任何其他文件。
我知道 ext3 文件系统上 inode 的最大限制是(来自 Wikipedia)32,000,但我的要少得多,还要注意我可以在磁盘上手动创建文件;只是没有通过 fopen。
另外,我真的很感激关于在磁盘上存储一个非常动态的四叉树的最佳方法的任何想法(我需要将节点放在单独的文件中,并且四叉树的深度可能为 50)。
使用嵌套目录是一种想法,但我认为它会降低性能,因为遵循文件系统上的链接来访问文件。
谢谢,尼玛