这可能是一个微不足道的问题,但无论如何,我想知道是否有办法将目录作为文件读取,其中一个将使用open(),close(),read()而不是opendir( ),closedir(),readdir()......
我可能错了,但是,我认为这可以加速目录遍历。
由于
答案 0 :(得分:2)
这实际上是Unix目录的工作原理。该目录实际上只是一个普通文件,您可以读出一个包含4字节inode编号和12字节文件名的(IIRC)16字节记录的平面数组。 opendir()和readdir()只是该接口周围的库函数。
但是从Sun在80年代中期推出VFS开始,不再只有一个文件系统了。相反,opendir和readdir变成了系统调用,并且读取目录的“原始”内容的能力消失了。
在任何情况下,文件系统作者都非常(!)努力使他们的代码快速。你无法在外部做任何“加速”此级别的目录遍历。我猜想尝试使用更少的文件。
答案 1 :(得分:0)
没有。除非您正在阅读ls
的输出。