【发布时间】:2014-07-04 13:23:34
【问题描述】:
我正在尝试遍历目录结构并打开该结构中的每个文件。为了遍历,我使用了 opendir() 和 readdir()。由于我已经拥有该实体,因此构建路径并打开文件似乎很愚蠢——这可能会迫使 Linux 找到我刚刚遍历的目录和文件。
2 级 I/O(打开、创建、读取、写入)需要路径。是否有任何调用来打开目录中的文件名,或者打开给定 inode 的文件?
【问题讨论】:
-
“这大概会迫使 Linux 找到我刚刚遍历的目录和文件。” - 我会做一些挖掘/测量,看看这是否值得尝试优化。您在这里的假设可能不正确。
-
如果没有别的,它会迫使我在我不想的时候建立路径!
-
有(相当新的)openat() 系统调用。然而,你从 opendir()/readdir() 中得到的并没有太多可以传递给 openat() 调用。