Blame


1 058b0118 2005-01-03 devnull .TH OPENTEMP 3
2 058b0118 2005-01-03 devnull .SH NAME
3 a58a827f 2008-07-10 rsc opentemp \- create and open 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 a58a827f 2008-07-10 rsc int opentemp(char *template, int mode)
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 d32deab1 2020-08-16 rsc .MR access (2) )
29 058b0118 2005-01-03 devnull is generated.
30 058b0118 2005-01-03 devnull .I Opentemp
31 a58a827f 2008-07-10 rsc then opens the file for the given
32 a58a827f 2008-07-10 rsc .I mode
33 058b0118 2005-01-03 devnull and returns the file descriptor.
34 a58a827f 2008-07-10 rsc Most calls should use a mode
35 a58a827f 2008-07-10 rsc of
36 a58a827f 2008-07-10 rsc .BR ORDWR|ORCLOSE .
37 058b0118 2005-01-03 devnull .PP
38 058b0118 2005-01-03 devnull If no such name can be generated,
39 058b0118 2005-01-03 devnull .I opentemp
40 058b0118 2005-01-03 devnull returns \-1.
41 058b0118 2005-01-03 devnull .PP
42 058b0118 2005-01-03 devnull .I Opentemp
43 058b0118 2005-01-03 devnull avoids races.
44 058b0118 2005-01-03 devnull Two simultaneous calls to
45 058b0118 2005-01-03 devnull .I opentemp
46 058b0118 2005-01-03 devnull will never return the same name.
47 058b0118 2005-01-03 devnull .SH SOURCE
48 c3674de4 2005-01-11 devnull .B \*9/src/lib9/opentemp.c
49 058b0118 2005-01-03 devnull .SH "SEE ALSO
50 058b0118 2005-01-03 devnull .I create
51 058b0118 2005-01-03 devnull in
52 d32deab1 2020-08-16 rsc .MR open (3)