ACCESS

Section: Linux Programmer's Manual (2)
Updated: 21 August 1994
Index Return to Main Contents
 

NAME

access - check user's permissions for a file  

SYNOPSIS

#include <unistd.h>

int access(const char *pathname, int mode);
 

DESCRIPTION

access checks whether the process would be allowed to read, write or test for existence of the file (or other file system object) whose name is pathname.

mode is a mask consisting of one or more of R_OK, W_OK, X_OK and F_OK.

R_OK, W_OK and X_OK request testing for reading, writing and executing the file, respectively. F_OK requests checking whether merely testing for the existence of the file would be allowed (this depends on the permissions of the directories in the path to the file, as given in pathname.)

The check is done with the process's real uid and gid, rather than with the effective ids as is done when actually attempting an operation. This is to allow set-UID programs to easily determine the invoking user's authority.

Only access bits are checked, not the file type or contents. Therefore, if a directory is found to be "writable," it probably means that files can be created in the directory, and not that the directory can be written as a file. Similarly, a DOS file may be found to be "executable," but the execve(2) call will still fail.  

RETURN VALUE

On success, zero is returned. On error, -1 is returned, and errno is set appropriately.  

ERRORS

EACCES
The requested access would be denied, either to the file itself or one of the directories in pathname.
EFAULT
pathname points outside your accessible address space.
EINVAL
mode was incorrectly specified.
ENAMETOOLONG
pathname is too long.
ENOENT
A directory component in pathname would have been accessible but does not exist or was a dangling symbolic link.
ENOTDIR
A component used as a directory in pathname is not, in fact, a directory.
ENOMEM
Insufficient kernel memory was available.
ELOOP
pathname contains a reference to a circular symbolic link, i.e., a symbolic link containing a reference to itself.
 

CONFORMING TO

SVID, AT&T, POSIX, X/OPEN, BSD 4.3  

SEE ALSO

stat(2), open(2), chmod(2), chown(2), setuid(2), setgid(2).


 

Index

NAME
SYNOPSIS
DESCRIPTION
RETURN VALUE
ERRORS
CONFORMING TO
SEE ALSO

This document was created by man2html, using the manual pages.
Time: 12:24:49 GMT, March 22, 2025