我应该将O_PATH用于什么,以及如何使用?
我使用的是基于Linux 4.x的发行版,最近我注意到内核的open()系统调用支持O_PATHopen标志。 尽管man它的页面上确实列出了可以在理论上使用的系统调用列表,但我不太了解这个想法是什么。我是否open(O_PATH)仅目录,而不是文件?如果可以,为什么要使用文件描述符而不是目录路径?同样,那里列出的大多数系统调用似乎都不是目录所特有的。因此,我是否还会打开常规文件O_PATH以某种方式获取其目录作为文件描述符?还是要为它们获取文件描述符,但功能有限? 有人可以O_PATH对我们应该使用的内容,用途以及用途进行有力的解释吗? 笔记: 除非必要,否则无需描述它的演变历史(相关的手册页提到Linux 2.6.x,3.5和3.6中的更改)-我只关心现在的情况。 我知道,请不要告诉我只使用libc或其他更高级别的设施。