Blame


1 058b0118 2005-01-03 devnull .TH OPENTEMP 3
2 058b0118 2005-01-03 devnull .SH NAME
3 058b0118 2005-01-03 devnull opentemp \- create a uniquely-named file
4 058b0118 2005-01-03 devnull .SH SYNOPSIS
5 058b0118 2005-01-03 devnull .B #include <u.h>
6 058b0118 2005-01-03 devnull .br
7 058b0118 2005-01-03 devnull .B #include <libc.h>
8 058b0118 2005-01-03 devnull .PP
9 058b0118 2005-01-03 devnull .B
10 058b0118 2005-01-03 devnull int opentemp(char *template)
11 058b0118 2005-01-03 devnull .SH DESCRIPTION
12 058b0118 2005-01-03 devnull .I Opentemp
13 058b0118 2005-01-03 devnull replaces
14 058b0118 2005-01-03 devnull .I template
15 058b0118 2005-01-03 devnull by a unique file name, and returns the
16 058b0118 2005-01-03 devnull address of the template.
17 058b0118 2005-01-03 devnull The template should look like a file name with eleven trailing
18 058b0118 2005-01-03 devnull .LR X s.
19 058b0118 2005-01-03 devnull The
20 058b0118 2005-01-03 devnull .LR X s
21 058b0118 2005-01-03 devnull are replaced by a letter followed by the current process id.
22 058b0118 2005-01-03 devnull Letters from
23 058b0118 2005-01-03 devnull .L a
24 058b0118 2005-01-03 devnull to
25 058b0118 2005-01-03 devnull .L z
26 058b0118 2005-01-03 devnull are tried until the name of a file that does not yet exist
27 058b0118 2005-01-03 devnull (see
28 058b0118 2005-01-03 devnull .IR access (2))
29 058b0118 2005-01-03 devnull is generated.
30 058b0118 2005-01-03 devnull .I Opentemp
31 058b0118 2005-01-03 devnull then creates the file for reading and writing
32 058b0118 2005-01-03 devnull and returns the file descriptor.
33 058b0118 2005-01-03 devnull .PP
34 058b0118 2005-01-03 devnull If no such name can be generated,
35 058b0118 2005-01-03 devnull .I opentemp
36 058b0118 2005-01-03 devnull returns \-1.
37 058b0118 2005-01-03 devnull .PP
38 058b0118 2005-01-03 devnull .I Opentemp
39 058b0118 2005-01-03 devnull avoids races.
40 058b0118 2005-01-03 devnull Two simultaneous calls to
41 058b0118 2005-01-03 devnull .I opentemp
42 058b0118 2005-01-03 devnull will never return the same name.
43 058b0118 2005-01-03 devnull .SH SOURCE
44 c3674de4 2005-01-11 devnull .B \*9/src/lib9/opentemp.c
45 058b0118 2005-01-03 devnull .SH "SEE ALSO
46 058b0118 2005-01-03 devnull .I create
47 058b0118 2005-01-03 devnull in
48 058b0118 2005-01-03 devnull .IR open (3)