access(2)
access --
determine accessibility of a file
Synopsis
#include <unistd.h>
int access(const char
path, int amode);
Description
access checks the accessibility of a file.
path
points to a pathname naming a file.
access
checks the named file
for accessibility according to the bit pattern contained in
amode,
using the real user
ID
in place of the effective user
ID
and
the real group
ID
in place of the effective group
ID.
The bit pattern contained in
amode
is constructed by an OR of the following constants (defined in
unistd.h):
- R_OK
-
test for read permission
- W_OK
-
test for write permission
- X_OK
-
test for execute (search) permission
- F_OK
-
test for existence of file
- EX_OK
-
test for regular, executable file
- EFF_ONLY_OK
-
test using effective IDs
Note that successful checking of the EXEC_OK file does not imply
that the
exec(2)
system call will succeed on the file named by
path, since the check succeeds if at least one execute bit is
set; there are also additional checks made for execute permission by
exec.
Return values
If the requested access is permitted, access returns 0.
Otherwise, access returns -1 and sets errno to identify the reason.
In the following conditions,
access sets errno to:
- EACCES
-
Search permission is denied on a component of the path prefix.
- EACCES
-
Access permission is denied.
- EACCES
-
The file is not a regular file.
- EFAULT
-
path
points outside the allocated address space for the process.
- EINTR
-
A signal was caught during the access system call.
- EINVAL
-
amode is invalid.
- ELOOP
-
Too many symbolic links were encountered in translating
path.
- EMULTIHOP
-
Components of
path
require hopping to multiple remote machines.
- ENAMETOOLONG
-
The length of the
path
argument exceeds {PATH_MAX},
or the length of a path component exceeds {NAME_MAX}
while _POSIX_NO_TRUNC is in effect.
- ENOTDIR
-
A component of the path prefix is not a directory.
- ENOENT
-
Read, write, or execute (search) permission is requested for a null pathname.
- ENOENT
-
The named file does not exist.
- ENOLINK
-
path points to a remote machine and the link
to that machine is no longer active.
- EROFS
-
Write access is requested for a file on a read-only file system.
References
chmod(2),
intro(2),
stat(2)
Notices
Considerations for threads programming
Access rights
are an attribute of the containing process and are shared by sibling threads.
30 January 1998
© 1998 The Santa Cruz Operation, Inc. All rights reserved.