Method access()
- Method
access
int
access(string
path
,string
|void
mode
)- Description
access() checks if the calling process can access the file
path
. Symbolic links are dereferenced.- Parameter
mode
The
mode
specifies the accessibility checks to be performed, and is either not specified or empty, in which case access() just tests if the file exists, or one or more of the characters"rwx"
.r, w, and x test whether the file exists and grants read, write, and execute permissions, respectively.
The check is done using the calling process's real UID and GID, rather than the effective IDs as is done when actually attempting an operation (e.g., open(2)) on the file. This allows set-user-ID programs to easily determine the invoking user's authority.
If the calling process is privileged (i.e., its real UID is zero), then an X_OK check is successful for a regular file if execute permission is enabled for any of the file owner, group, or other.
- Returns
1
When the file is accessible using the given permissions.
0
When the file is not accessible, in which case errno is set to one of the following values:
EACCESS
Access denied.
ELOOP
Too many symbolic links.
ENAMETOOLONG
The path is too long.
ENOENT
The file does not exist.
ENOTDIR
One of the directories used in
path
is not, in fact, a directory.EROFS
The filesystem is read only and write access was requested.
Other errors can occur, but are not directly related to the requested path, such as
ENOMEM
, etc.- See also