.\" manual under the conditions for verbatim copying, provided that the
.\" entire resulting derived work is distributed under the terms of a
.\" permission notice identical to this one.
-.\"
+.\"
.\" Since the Linux kernel and libraries are constantly changing, this
.\" manual page may be incorrect or out-of-date. The author(s) assume no
.\" responsibility for errors or omissions, or for damages resulting from
.\" have taken the same level of care in the production of this manual,
.\" which is licensed free of charge, as they might when working
.\" professionally.
-.\"
+.\"
.\" Formatted or processed versions of this manual, if unaccompanied by
.\" the source, must acknowledge the copyright and authors of this work.
.\"
.\"
-.TH FACCESSAT 2 2006-05-05 "Linux 2.6.16" "Linux Programmer's Manual"
+.TH FACCESSAT 2 2007-02-28 "Linux 2.6.16" "Linux Programmer's Manual"
.SH NAME
-faccessat \- change permissions of a file relative to a directory \
-file descriptor
+faccessat \- check user's permissions of a file relative to a \
+directory file descriptor
.SH SYNOPSIS
.nf
+.B #define _ATFILE_SOURCE
+.B #include <fcntl.h>
.B #include <unistd.h>
.sp
-.BI "int faccessat(int " dirfd ", const char *" path ", int " \
+.BI "int faccessat(int " dirfd ", const char *" pathname ", int " \
mode ", int " flags );
.fi
.SH DESCRIPTION
.BR access (2),
except for the differences described in this manual page.
-If the pathname given in
-.I path
+If the pathname given in
+.I pathname
is relative, then it is interpreted relative to the directory
referred to by the file descriptor
-.IR dirfd
-(rather than relative to the current working directory of
+.IR dirfd
+(rather than relative to the current working directory of
the calling process, as is done by
.BR access (2)
for a relative pathname).
-If the pathname given in
-.I path
-is relative and
+If
+.I pathname
+is relative and
.I dirfd
is the special value
.BR AT_FDCWD ,
then
-.I path
-is interpreted relative to the current working
+.I pathname
+is interpreted relative to the current working
directory of the calling process (like
.BR access (2)).
-If the pathname given in
-.IR path
-is absolute, then
-.I dirfd
+If
+.IR pathname
+is absolute, then
+.I dirfd
is ignored.
.I flags
is constructed by ORing together zero or more of the following values:
.TP
-.B AT_EACESS
-Perform access checks using the effective user and group IDs.
-By default,
+.B AT_EACCESS
+Perform access checks using the effective user and group IDs.
+By default,
.BR faccessat ()
-uses the effective IDs (like
+uses the real IDs (like
.BR access (2)).
.TP
.B AT_SYMLINK_NOFOLLOW
-If
-.I path
-is a symbolic link, do not dereference it:
+If
+.I pathname
+is a symbolic link, do not dereference it:
instead return information about the link itself.
.SH "RETURN VALUE"
-On success,
-.BR faccessat ()
-returns 0.
+On success, (all requested permissions granted)
+.BR faccessat ()
+returns 0.
On error, \-1 is returned and
.I errno
is set to indicate the error.
.BR access (2)
can also occur for
.BR faccessat ().
-The following additional errors can occur for
+The following additional errors can occur for
.BR faccessat ():
.TP
.B EBADF
.IR flags .
.TP
.B ENOTDIR
-.I path
-is a relative path and
+.I pathname
+is relative and
.I dirfd
is a file descriptor referring to a file other than a directory.
.SH NOTES
.B AT_EACCESS
and
.B AT_SYMLINK_NOFOLLOW
-flags are actually implemented within the glibc wrapper function for
+flags are actually implemented within the glibc wrapper function for
.BR faccessat ().
-If either of these flags are specified, then the wrapper function employs
+If either of these flags are specified, then the wrapper function employs
.BR fstatat (2)
to determine access permissions.
.SH VERSIONS