###

###

###

###

###

###

###

###

###

    ACCESS(2)           Linux Programmer's Manual           ACCESS(2)

    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 path-
           name.)

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

           Only  access  bits  are checked, not the file type or con-
           tents.   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 "exe-
           cutable," 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 path-
                   name.

           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

    Linux 1.1.46              21 August 1994                        1

    ACCESS(2)           Linux Programmer's Manual           ACCESS(2)

                   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 sym-
                   bolic 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, open, chmod, chown, setuid,

###

    Linux 1.1.46              21 August 1994                        2

Top | Master Index | Keywords | Functions

This manual page was brought to you by mjl_man V-2.0