Annotation of 43BSDTahoe/man/man2/access.2, revision 1.1.1.1

1.1       root        1: .\" Copyright (c) 1980 Regents of the University of California.
                      2: .\" All rights reserved.  The Berkeley software License Agreement
                      3: .\" specifies the terms and conditions for redistribution.
                      4: .\"
                      5: .\"    @(#)access.2    6.5 (Berkeley) 5/22/86
                      6: .\"
                      7: .TH ACCESS 2 "May 22, 1986"
                      8: .UC 4
                      9: .SH NAME
                     10: access \- determine accessibility of file
                     11: .SH SYNOPSIS
                     12: .nf
                     13: .ft B
                     14: #include <sys/file.h>
                     15: .PP
                     16: .ft B
                     17: .ta 1.25i 1.6i
                     18: #define R_OK   4       /* test for read permission */
                     19: #define W_OK   2       /* test for write permission */
                     20: #define X_OK   1       /* test for execute (search) permission */
                     21: #define F_OK   0       /* test for presence of file */
                     22: .PP
                     23: .ft B
                     24: accessible = access(path, mode)
                     25: int accessible;
                     26: char *path;
                     27: int mode;
                     28: .ft R
                     29: .fi
                     30: .SH DESCRIPTION
                     31: .I Access
                     32: checks the given
                     33: file
                     34: .I path
                     35: for accessibility according to
                     36: .IR mode ,
                     37: which is an inclusive or of the bits
                     38: R_OK,
                     39: W_OK
                     40: and
                     41: X_OK.
                     42: Specifying
                     43: .I mode
                     44: as F_OK (i.e., 0)
                     45: tests whether the directories leading to the file can be
                     46: searched and the file exists.
                     47: .PP
                     48: The real user ID and the group access list
                     49: (including the real group ID) are
                     50: used in verifying permission, so this call
                     51: is useful to set-UID programs.
                     52: .PP
                     53: Notice that only access bits are checked.
                     54: A directory may be indicated as writable by
                     55: .IR access ,
                     56: but an attempt to open it for writing will fail
                     57: (although files may be created there);
                     58: a file may look executable, but
                     59: .I execve
                     60: will fail unless it is in proper format.
                     61: .SH "RETURN VALUE
                     62: If
                     63: .I path
                     64: cannot be found or if any of the desired access modes would
                     65: not be granted, then a \-1 value is returned; otherwise
                     66: a 0 value is returned.
                     67: .SH "ERRORS
                     68: Access to the file is denied if one or more of the following are true:
                     69: .TP 15
                     70: [ENOTDIR]
                     71: A component of the path prefix is not a directory.
                     72: .TP 15
                     73: [EINVAL]
                     74: The pathname contains a character with the high-order bit set.
                     75: .TP 15
                     76: [ENAMETOOLONG]
                     77: A component of a pathname exceeded 255 characters,
                     78: or an entire path name exceeded 1023 characters.
                     79: .TP 15
                     80: [ENOENT]
                     81: The named file does not exist.
                     82: .TP 15
                     83: [EACCES]
                     84: Search permission is denied for a component of the path prefix.
                     85: .TP 15
                     86: [ELOOP]
                     87: Too many symbolic links were encountered in translating the pathname.
                     88: .TP 15
                     89: [EROFS]
                     90: Write access is requested for a file on a read-only file system.
                     91: .TP 15
                     92: [ETXTBSY]
                     93: Write access is requested for a pure procedure (shared text)
                     94: file that is being executed.
                     95: .TP 15
                     96: [EACCES]
                     97: Permission bits of the file mode do not permit the requested
                     98: access, or search permission is denied on a component of the
                     99: path prefix.  The owner of a file has permission checked with
                    100: respect to the ``owner'' read, write, and execute mode bits,
                    101: members of the file's group other than the owner have permission
                    102: checked with respect to the ``group'' mode bits, and all
                    103: others have permissions checked with respect to the ``other''
                    104: mode bits.
                    105: .TP 15
                    106: [EFAULT]
                    107: .I Path
                    108: points outside the process's allocated address space.
                    109: .TP 15
                    110: [EIO]
                    111: An I/O error occurred while reading from or writing to the file system.
                    112: .SH "SEE ALSO
                    113: chmod(2), stat(2)

unix.superglobalmegacorp.com

This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.