12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364 |
- .TH ACCESS 2
- .SH NAME
- access \- determine accessibility of file
- .SH SYNOPSIS
- .B #include <u.h>
- .br
- .B #include <libc.h>
- .PP
- .B
- int access(char *name, int mode)
- .SH DESCRIPTION
- .I Access
- evaluates the given
- file
- .I name
- for accessibility.
- If \fImode\fL&4\fR
- is nonzero,
- read permission is expected;
- if \fImode\fL&2\fR,
- write permission;
- if \fImode\fL&1\fR,
- execute permission.
- If \fImode\fL==0\fR,
- the file merely need exist.
- In any case
- all directories leading to the file
- must permit searches.
- Zero is returned if the desired access is permitted,
- \-1 if not.
- .PP
- Only access bits are checked.
- A file may look executable, but
- .IR exec (2)
- will fail unless it is in proper format.
- .PP
- The include file
- .F <libc.h>
- defines
- .BR AEXIST =0,
- .BR AEXEC =1,
- .BR AWRITE =2,
- and
- .BR AREAD =4.
- .PP
- .SH SOURCE
- .B /sys/src/libc/9sys/access.c
- .SH SEE ALSO
- .IR stat (2)
- .SH DIAGNOSTICS
- Sets
- .IR errstr .
- .SH BUGS
- Since file permissions are checked by the server and group information
- is not known to the client,
- .I access
- must open the file to check permissions.
- (It calls
- .IR stat (2)
- to check simple existence.)
- Besides giving misleading information about the writability of directories,
- this is as expensive as the open that
- .I access
- is often intended to avoid.
|