access

Hurricane Electric Internet Services: Accounts starting at $9.95/month
Hurricane Electric Internet Services

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
               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(2),  open(2),  chmod(2),  chown(2),  setuid(2),  set-
       gid(2).
Hurricane Electric Internet Services: Accounts starting at $9.95/month
Hurricane Electric Internet Services
Copyright (C) 1998 Hurricane Electric. All Rights Reserved.