假设我需要获取仅具有执行(或搜索)权限的文件(或目录)的文件描述符.
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 环境中的高级编程》中所述,您可以在此处查看该书的链接到google books 上的书
实际上,该标志是在 POSIX 中定义的,在标准 C 库中实现(在本例中是 glibc,这就是您在 man 3 open 下找到它的原因),但在 Linux 内核中没有实现(因此在 man 2 open 下找不到)。
编辑 1:由于我们在 Linux 下使用 GNU,因此它包含 Linux 的特定标头,以便能够进行 Linux 可行的适当系统调用(在本例中,除了 fcntl.h 之外,它还包含 fcntl-linux.h)。
编辑2:错误票 https://sourceware.org/bugzilla/show_bug.cgi?id=18228
如果我错了,请纠正我!
| 归档时间: |
|
| 查看次数: |
372 次 |
| 最近记录: |