gpt4 book ai didi

linux - 为什么open函数在linux下没有O_SEARCH标志?

转载 作者:IT王子 更新时间:2023-10-29 00:54:31 25 4
gpt4 key购买 nike

假设我需要获取只有执行(或搜索)权限的文件(或目录)的文件描述符。

X/Open 规范为 open() 函数定义了一个 O_SEARCH 标志。参见 http://pubs.opengroup.org/onlinepubs/9699919799/functions/open.html

但是,Linux 没有。只有 3 个可用标志(O_RDONLY、O_WRONLY 和 O_RDWR)。参见 http://man7.org/linux/man-pages/man2/open.2.html

为什么?以及如何获取只有搜索权限的目录的 fd?

谢谢

最佳答案

事实证明 Linux 还不支持这个标志,如 W. Richard Stevens Stephen A. Rago 的书“UNIX 环境中的高级编程”中所述,您可以在这里查看 Link to the book on google books

实际上,该标志在 POSIX 中定义,在标准 C 库中实现(在本例中为 glibc,这就是为什么您在 man 3 open 下找到它的原因)但未在 Linux 内核中实现(因此在 man 2 open 下找不到).

编辑 1:由于我们在 Linux 下使用 GNU,因此它包含 Linux 的特定 header ,以便能够进行 Linux 可行的适当系统调用(在这种情况下,除了 fcntl.h 之外,它还包含 fcntl-linux.h)。

编辑 2:错误票 https://sourceware.org/bugzilla/show_bug.cgi?id=18228

如果我错了,请纠正我!

关于linux - 为什么open函数在linux下没有O_SEARCH标志?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44159325/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com