ACCESS(2)                                                            ACCESS(2)


NAME
       access - determine accessibility of file

SYNOPSIS
       #include <sys/file.h>

       #define R_OK    4/* test for read permission */
       #define W_OK    2/* test for write permission */
       #define X_OK    1/* test for execute (search) permission */
       #define F_OK    0/* test for presence of file */

       accessible = access(path, mode)
       int accessible;
       char *path;
       int mode;

DESCRIPTION
       Access  checks the given file path for accessibility according to mode,
       which is an inclusive or of the bits R_OK, W_OK and  X_OK.   Specifying
       mode  as  F_OK  (i.e.,  0) tests whether the directories leading to the
       file can be searched and the file exists.

       The real user ID and the group access list (including  the  real  group
       ID) are used in verifying permission, so this call is useful to set-UID
       programs.

       Notice that only access bits are checked.  A directory may be indicated
       as  writable by access, but an attempt to open it for writing will fail
       (although files may be created there); a file may look executable,  but
       execve will fail unless it is in proper format.

RETURN VALUE
       If path cannot be found or if any of the desired access modes would not
       be granted, then a -1  value  is  returned;  otherwise  a  0  value  is
       returned.

ERRORS
       Access to the file is denied if one or more of the following are true:

       [ENOTDIR]      A component of the path prefix is not a directory.

       [EINVAL]       The  pathname  contains  a character with the high-order
                      bit set.

       [ENAMETOOLONG] A component of a pathname exceeded 255 characters, or an
                      entire path name exceeded 1023 characters.

       [ENOENT]       The named file does not exist.

       [EACCES]       Search  permission is denied for a component of the path
                      prefix.

       [ELOOP]        Too many symbolic links were encountered in  translating
                      the pathname.

       [EROFS]        Write access is requested for a file on a read-only file
                      system.

       [ETXTBSY]      Write access is requested for a pure  procedure  (shared
                      text) file that is being executed.

       [EACCES]       Permission  bits  of  the  file  mode  do not permit the
                      requested access, or search permission is  denied  on  a
                      component  of  the path prefix.  The owner of a file has
                      permission checked with respect to the  ‘‘owner’’  read,
                      write,  and  execute  mode  bits,  members of the file’s
                      group other than the owner have permission checked  with
                      respect  to the ‘‘group’’ mode bits, and all others have
                      permissions checked with respect to the  ‘‘other’’  mode
                      bits.

       [EFAULT]       Path  points  outside  the  process’s  allocated address
                      space.

       [EIO]          An I/O error occurred while reading from or  writing  to
                      the file system.

SEE ALSO
       chmod(2), stat(2)


4th Berkeley Distribution        May 22, 1986                        ACCESS(2)
 
Generated: 2016-12-26
Generated by man2html V0.25
page hit count: 789
Valid CSS Valid XHTML 1.0 Strict