access(2) DG/UX 4.30 access(2)
NAME
access - Determine the accessibility of a file.
SYNOPSIS
#include <sys/file.h>
int access (path, amode)
char * path;
int amode;
PARAMETERS
path Address of a pathname.
amode Access mode bit pattern.
DESCRIPTION
<Path> points to a pathname naming a file of type ordinary,
directory, FIFO, block special, or character special, or
symbolic link. If <path> refers to a symbolic link, the
target of the symbolic link is checked, not the symbolic
link. This function checks that the calling process has
specified access rights to the file. The types of access
requested are indicated by <amode>, which can have the
following values:
F_OK 0
Check the existence of a file.
X_OK 1
Check for execute access. Applied to a directory,
execute permission allows the directory to be used in a
pathname.
W_OK 2
Check for write access. Applied to a directory, write
permission allows the creation and deletion of links in
the directory.
R_OK 4
Check for read access. Applied to a directory, read
permission allows the contents of the directory to be
listed.
Some combination (logical OR) of X_OK, W_OK, and R_OK.
Write access is categorically denied in two situations:
Licensed material--property of copyright holder(s) Page 1
access(2) DG/UX 4.30 access(2)
* The file has shared text that is currently being
executed by some process in the system. In this case,
errno is set to ETXTBSY.
* The file is of type ordinary, directory, or FIFO and
resides on a read-only file system device. In this
case, errno is set to EROFS.
In all other situations, a process with a real user id of
superuser is granted all access rights. Other processes are
granted access only if the file's mode gives them all types
of access requested.
When determined by the file's mode, access is checked with
respect to only one of the owner, group, and other subsets
of the mode. If the process's real user id matches the
file's user id, the owner bits of the file mode determine
access. If the process's real user id doesn't match, but
its real group id matches the file's group id or one of the
group ids in its group set matches the file's group id, the
group bits of the file mode determine access. In all other
cases, the 'other' mode bits determine access.
Note that this call does not guarantee that a file is
writable or executable if write or execute access is
granted. For instance, a directory's mode may give the
caller write access, indicating that files may be created in
it, but an open of the directory for write intent will fail.
ACCESS CONTROL
The caller must have permission to resolve <path>. This
call differs from others in that the process's real user id
is used to determine permission to resolve a pathname,
rather than its effective user id.
RETURN VALUE
0 The requested access is permitted.
-1 Access to the file is denied. Errno is set
to indicate the error.
EXCEPTIONS
Errno may be set to one of the following error codes:
EACCES Permission bits of the file mode do not
permit the requested access.
EROFS Write access is requested for a file of type
ordinary, directory, or FIFO that resides on
Licensed material--property of copyright holder(s) Page 2
access(2) DG/UX 4.30 access(2)
a file system device mounted read-only.
ETXTBSY Write access is requested for a pure
procedure (shared text) file that is being
executed by some process in the system.
ENOENT The file the pathname resolved to does not
exist.
ENOENT A non-terminal component of the pathname does
not exist.
ENOTDIR A non-terminal component of the pathname was
not a directory or symbolic link.
ENAMETOOLONG The pathname exceeds the length limit for
pathnames.
ENAMETOOLONG A component of the pathname exceeds the
length limit for filenames.
ENOMEM There are not enough system resources to
resolve the pathname or to expand a symbolic
link.
ELOOP The number of symbolic links encountered
during pathname resolution exceeded
MAXSYMLINKS. A symbolic link cycle is
suspected.
EPERM The pathname contains a character not in the
allowed character set.
EFAULT The pathname does not completely reside in
the process's address space or the pathname
does not terminate in the process's address
space.
SEE ALSO
The related manual sections: chmod(2), fstat(2), stat(2),
stat(5).
Licensed material--property of copyright holder(s) Page 3