版权所有 © 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)
广告