V10/man/man2/access.2

Compare this file to the similar file:
Show the results in this format:

.TH ACCESS 2
.CT 2 dirs file_inq_creat secur
.SH NAME
access \(mi determine accessibility of file
.SH SYNOPSIS
.nf
.B int access(name, mode)
.B char *name;
.fi
.SH DESCRIPTION
.I Access
checks the given
file
.I name
for accessibility.
If \fImode\fL&4\fR
is nonzero, read access is checked.
If \fImode\fL&2\fR
is nonzero, write access is checked.
If \fImode\fL&1\fR
is nonzero, execute access is checked.
If \fImode\fL==\fR0,
the file merely need exist.
In any case
all directories leading to the file
must permit searches.
0 is returned if the access is permitted,,
\-1 if not.
.PP
Permission is checked
against the real userid and groupid of the process;
this call is most useful in set-userid and set-groupid programs.
.PP
Only access bits are checked.
A directory may be announced as writable by
.IR access ,
but an attempt to open it for writing will fail
(although files may be created there);
a file may look executable, but
.IR exec (2)
will fail unless it is in proper format.
.PP
If the userid of the process is the owner of the file
access is determined by the three owner bits (0700).
Otherwise, if the groupid of the process is the group
of the file access is determined by the three group bits (0070).
Otherwise access is determined by the three other bits (0007).
.SH SEE ALSO
.IR stat (2)
.SH DIAGNOSTICS
.BR EACCES ,
.BR EFAULT ,
.BR EIO ,
.BR ELOOP ,
.BR ENOENT ,
.BR ENOTDIR ,
.BR EROFS ,
.BR ETXTBSY
.SH BUGS
On symbolic links permissions are irrelevant and
.IR access
returns nonsense.