faccessat(2)linux man page

2puT發表於2016-07-11


名稱

faccessat 檢查使用者的許可權的檔案相對目錄檔案描述符

staging 模組

# include/ *定義 at_ *常量 */
# include<<a href="http://linux.die.net/include/清單2" rel="nofollow">清單2>
 int  faccessat(int  dirfd , const  char  *pathname , int , int  flags); 
glibc 的功能測試巨集要求(看到 feature_test_macros(7)):
faccessat():
因為 glibc 2.10:
_xopen_source>= 700 || _posix_c_source>= 200809l
glibc 2.10: 之前
_atfile_source

描述

在faccessat()系統呼叫的作用完全相同的access(2)除在本手冊所述的差異.

如果給出該路徑名,路徑名是相對的.然後它將被解釋為目錄的檔案描述符dirfd((2)為相對路徑名).

如果 pathname 是特殊值 at_fdcwd dirfd 是相對的,然後向呼叫程式的當前工作目錄的路徑名解釋相對(像 access(2)).

如果 pathname 是絕對的,則忽略 dirfd .

標誌是如何構造的 oring 一起零個或零個以上的以下值:

at_eaccess
執行訪問檢查使用實際使用者和組 id .預設情況下,faccessat()使用真實的id(像 access(2)).
at_symlink_nofollow
如果 pathname 是一個符號連結,不要取消它的:返回有關連結本身.

返回值

成功時,(所有請求的許可權授予)faccessat()返回0,所以返回1, errno 為錯誤.

錯誤

訪問相同的錯誤(2)也可以為faccessat().以下附加可 faccessat():

ebadf
dirfd 是無效的檔案描述符.
einval
無效標誌中指定的標誌.
enotdir
pathname 是相對和 dirfd 是一個檔案描述符引用一個目錄以外的檔案.

版本

faccessat()未新增到 linux 核心 2.6.16.

符合

posix.1 資訊的說明

notes

看到openat(2)對 faccessat 需要的說明 ,().

警告:faccessat()如有相同種類的爭用,則access(2)和 euidaccess(3).

glibc notes

在 glibc 的包裝函式使用 at_eaccess 和 at_symlink_nofollow 標誌為真正實現faccessat().如果在指定的標誌,包裝函式配藥fstatat(2)要確定訪問許可權.

參見

access(2), openat(2), euidaccess(3), credentials(7), path_resolution(7), symlink(7)

引用

syscalls(2)

相關文章