Blame


1 cfa37a7b 2004-04-10 devnull .TH ACCESS 3
2 cfa37a7b 2004-04-10 devnull .SH NAME
3 cfa37a7b 2004-04-10 devnull access \- determine accessibility of file
4 cfa37a7b 2004-04-10 devnull .SH SYNOPSIS
5 cfa37a7b 2004-04-10 devnull .B #include <u.h>
6 cfa37a7b 2004-04-10 devnull .br
7 cfa37a7b 2004-04-10 devnull .B #include <libc.h>
8 cfa37a7b 2004-04-10 devnull .PP
9 cfa37a7b 2004-04-10 devnull .B
10 cfa37a7b 2004-04-10 devnull int access(char *name, int mode)
11 cfa37a7b 2004-04-10 devnull .SH DESCRIPTION
12 cfa37a7b 2004-04-10 devnull .I Access
13 cfa37a7b 2004-04-10 devnull evaluates the given
14 cfa37a7b 2004-04-10 devnull file
15 cfa37a7b 2004-04-10 devnull .I name
16 cfa37a7b 2004-04-10 devnull for accessibility.
17 cfa37a7b 2004-04-10 devnull If \fImode\fL&4\fR
18 cfa37a7b 2004-04-10 devnull is nonzero,
19 cfa37a7b 2004-04-10 devnull read permission is expected;
20 cfa37a7b 2004-04-10 devnull if \fImode\fL&2\fR,
21 cfa37a7b 2004-04-10 devnull write permission;
22 cfa37a7b 2004-04-10 devnull if \fImode\fL&1\fR,
23 cfa37a7b 2004-04-10 devnull execute permission.
24 cfa37a7b 2004-04-10 devnull If \fImode\fL==0\fR,
25 cfa37a7b 2004-04-10 devnull the file merely need exist.
26 cfa37a7b 2004-04-10 devnull In any case
27 cfa37a7b 2004-04-10 devnull all directories leading to the file
28 cfa37a7b 2004-04-10 devnull must permit searches.
29 cfa37a7b 2004-04-10 devnull Zero is returned if the desired access is permitted,
30 cfa37a7b 2004-04-10 devnull \-1 if not.
31 cfa37a7b 2004-04-10 devnull .PP
32 cfa37a7b 2004-04-10 devnull Only access for open is checked.
33 cfa37a7b 2004-04-10 devnull A file may look executable, but
34 bf8a59fa 2004-04-11 devnull .IR exec (3)
35 cfa37a7b 2004-04-10 devnull will fail unless it is in proper format.
36 cfa37a7b 2004-04-10 devnull .PP
37 cfa37a7b 2004-04-10 devnull The include file
38 cfa37a7b 2004-04-10 devnull .F <libc.h>
39 cfa37a7b 2004-04-10 devnull defines
40 cfa37a7b 2004-04-10 devnull .BR AEXIST =0,
41 cfa37a7b 2004-04-10 devnull .BR AEXEC =1,
42 cfa37a7b 2004-04-10 devnull .BR AWRITE =2,
43 cfa37a7b 2004-04-10 devnull and
44 cfa37a7b 2004-04-10 devnull .BR AREAD =4.
45 cfa37a7b 2004-04-10 devnull .PP
46 cfa37a7b 2004-04-10 devnull .SH SOURCE
47 cfa37a7b 2004-04-10 devnull .B /sys/src/libc/9sys/access.c
48 cfa37a7b 2004-04-10 devnull .SH SEE ALSO
49 bf8a59fa 2004-04-11 devnull .IR stat (3)
50 cfa37a7b 2004-04-10 devnull .SH DIAGNOSTICS
51 cfa37a7b 2004-04-10 devnull Sets
52 cfa37a7b 2004-04-10 devnull .IR errstr .
53 cfa37a7b 2004-04-10 devnull .SH BUGS
54 cfa37a7b 2004-04-10 devnull Since file permissions are checked by the server and group information
55 cfa37a7b 2004-04-10 devnull is not known to the client,
56 cfa37a7b 2004-04-10 devnull .I access
57 cfa37a7b 2004-04-10 devnull must open the file to check permissions.
58 cfa37a7b 2004-04-10 devnull (It calls
59 bf8a59fa 2004-04-11 devnull .IR stat (3)
60 cfa37a7b 2004-04-10 devnull to check simple existence.)