【发布时间】:2016-03-15 22:35:33
【问题描述】:
有一个包含许多文件的目录,我需要打开名为00343dde41bac11ef7020935ee3d* 的文件。我怀疑只有一个这样的文件。
我知道访问一个文件fopen (3) 比读取整个目录readdir (3) 更快。
是否可以假设使用glob (3) 会比简单地使用readdir (3) 和测试文件名要快得多(需要更少的磁盘访问)?还有一个更强有力的声明:我可以假设glob (3),在这种情况下只有一个文件匹配并且我的模式使用前缀,应该和fstat (3)一样快吗?
研究:
- 我已阅读页面http://linux.die.net/man/3/glob 并找不到此问题的任何具体答案。
【问题讨论】:
-
原始讨论来自github.com/vgough/encfs/issues/7 创建文件系统时,这很重要。我正在寻求一个适用于多个平台的权威答案,以免我提交在 Linux 上运行但在 OTHER_OS 上运行缓慢的代码。
-
在 Mac 上,
glob使用readdir,所以它不可能更快。