110 lines
		
	
	
		
			2.7 KiB
		
	
	
	
		
			Groff
		
	
	
	
	
	
			
		
		
	
	
			110 lines
		
	
	
		
			2.7 KiB
		
	
	
	
		
			Groff
		
	
	
	
	
	
.\" Copyright (c) 1980 Regents of the University of California.
 | 
						|
.\" All rights reserved.  The Berkeley software License Agreement
 | 
						|
.\" specifies the terms and conditions for redistribution.
 | 
						|
.\"
 | 
						|
.\"	@(#)access.2	6.5 (Berkeley) 5/22/86
 | 
						|
.\"
 | 
						|
.TH ACCESS 2 "May 22, 1986"
 | 
						|
.UC 4
 | 
						|
.SH NAME
 | 
						|
access \- determine accessibility of file
 | 
						|
.SH SYNOPSIS
 | 
						|
.ft B
 | 
						|
.nf
 | 
						|
#include <sys/types.h>
 | 
						|
#include <unistd.h>
 | 
						|
.PP
 | 
						|
.ft B
 | 
						|
.ta 1.25i 1.6i
 | 
						|
.nf
 | 
						|
#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 */
 | 
						|
.PP
 | 
						|
.ft B
 | 
						|
.nf
 | 
						|
int access(const char *\fIpath\fP, mode_t \fImode\fP)
 | 
						|
.ft R
 | 
						|
.fi
 | 
						|
.SH DESCRIPTION
 | 
						|
.B Access
 | 
						|
checks the given
 | 
						|
file
 | 
						|
.I path
 | 
						|
for accessibility according to
 | 
						|
.IR mode ,
 | 
						|
which is an inclusive or of the bits
 | 
						|
.BR R_OK ,
 | 
						|
.BR W_OK
 | 
						|
and
 | 
						|
.BR X_OK .
 | 
						|
Specifying
 | 
						|
.I mode
 | 
						|
as
 | 
						|
.B F_OK
 | 
						|
(i.e., 0)
 | 
						|
tests whether the directories leading to the file can be
 | 
						|
searched and the file exists.
 | 
						|
.PP
 | 
						|
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.
 | 
						|
.PP
 | 
						|
Notice that only access bits are checked.
 | 
						|
A directory may be indicated as writable by
 | 
						|
.BR access ,
 | 
						|
but an attempt to open it for writing will fail
 | 
						|
(although files may be created there);
 | 
						|
a file may look executable, but
 | 
						|
.B execve
 | 
						|
will fail unless it is in proper format.
 | 
						|
.SH "RETURN VALUE
 | 
						|
If
 | 
						|
.I 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.
 | 
						|
.SH "ERRORS
 | 
						|
Access to the file is denied if one or more of the following are true:
 | 
						|
.TP 15
 | 
						|
[ENOTDIR]
 | 
						|
A component of the path prefix is not a directory.
 | 
						|
.TP 15
 | 
						|
[ENAMETOOLONG]
 | 
						|
The path name exceeds PATH_MAX characters.
 | 
						|
.TP 15
 | 
						|
[ENOENT]
 | 
						|
The named file does not exist.
 | 
						|
.TP 15
 | 
						|
[EACCES]
 | 
						|
Search permission is denied for a component of the path prefix.
 | 
						|
.TP 15
 | 
						|
[ELOOP]
 | 
						|
Too many symbolic links were encountered in translating the pathname.
 | 
						|
(Minix-vmd)
 | 
						|
.TP 15
 | 
						|
[EROFS]
 | 
						|
Write access is requested for a file on a read-only file system.
 | 
						|
.TP 15
 | 
						|
[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.
 | 
						|
.TP 15
 | 
						|
[EFAULT]
 | 
						|
.I Path
 | 
						|
points outside the process's allocated address space.
 | 
						|
.TP 15
 | 
						|
[EIO]
 | 
						|
An I/O error occurred while reading from or writing to the file system.
 | 
						|
.SH "SEE ALSO
 | 
						|
.BR chmod (2),
 | 
						|
.BR stat (2).
 |