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