版權所有 © 2014 tutorialspoint
faccessat - 更改相對於目錄檔案描述符的檔案的許可權
#include <unistd.h> int faccessat(int dirfd, const char *path, int mode ", int " flags );
int faccessat(int dirfd, const char *path, int mode ", int " flags );
faccessat() 系統呼叫與 access(2) 的操作方式完全相同,除了本手冊頁中描述的區別。
如果在 path 中給出的路徑名是相對路徑,則它將相對於檔案描述符 dirfd 所引用的目錄進行解釋(而不是相對於呼叫程序的當前工作目錄,access(2) 對相對路徑名就是這樣做的)。
如果在 path 中給出的路徑名是相對路徑,並且 dirfd 是特殊值 AT_FDCWD,則 path 將相對於呼叫程序的當前工作目錄進行解釋(就像 access(2) 一樣)。
如果在 path 中給出的路徑名是絕對路徑,則忽略 dirfd。
flags 透過將以下一個或多個值進行 OR 運算來構造
成功時,faccessat() 返回 0。發生錯誤時,返回 -1,並且 errno 被設定為指示錯誤。
access(2) 中發生的相同錯誤也可能發生在 faccessat() 中。以下附加錯誤可能發生在 faccessat() 中
請參閱 openat(2) 以瞭解 faccessat() 的必要性。
AT_EACCESS 和 AT_SYMLINK_NOFOLLOW 標誌實際上是在 faccessat() 的 glibc 包裝函式中實現的。如果指定了這兩個標誌中的任何一個,則包裝函式將使用 fstatat(2) 來確定訪問許可權。
faccessat() 在 Linux 核心 2.6.16 中新增。
access (2)
openat (2)
path_resolution (2)
廣告