summaryrefslogtreecommitdiffstats
path: root/man3p/tempnam.3p
blob: 3ad869a533561b17ddd81a5fd1879dd984160ee3 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
.\" Copyright (c) 2001-2003 The Open Group, All Rights Reserved 
.TH "TEMPNAM" P 2003 "IEEE/The Open Group" "POSIX Programmer's Manual"
.\" tempnam 
.SH NAME
tempnam \- create a name for a temporary file
.SH SYNOPSIS
.LP
\fB#include <stdio.h>
.br
.sp
char *tempnam(const char *\fP\fIdir\fP\fB, const char *\fP\fIpfx\fP\fB);
\fP
\fB
.br
\fP
.SH DESCRIPTION
.LP
The \fItempnam\fP() function shall generate a pathname that may be
used for a temporary file.
.LP
The \fItempnam\fP() function allows the user to control the choice
of a directory. The \fIdir\fP argument points to the name
of the directory in which the file is to be created. If \fIdir\fP
is a null pointer or points to a string which is not a name for
an appropriate directory, the path prefix defined as P_tmpdir in the
\fI<stdio.h>\fP
header shall be used. If that directory is not accessible, an implementation-defined
directory may be used.
.LP
Many applications prefer their temporary files to have certain initial
letter sequences in their names. The \fIpfx\fP argument
should be used for this. This argument may be a null pointer or point
to a string of up to five bytes to be used as the beginning
of the filename.
.LP
Some implementations of \fItempnam\fP() may use \fItmpnam\fP() internally.
On such
implementations, if called more than {TMP_MAX} times in a single process,
the behavior is implementation-defined.
.SH RETURN VALUE
.LP
Upon successful completion, \fItempnam\fP() shall allocate space for
a string, put the generated pathname in that space, and
return a pointer to it. The pointer shall be suitable for use in a
subsequent call to \fIfree\fP(). Otherwise, it shall return a null
pointer and set \fIerrno\fP to indicate the
error.
.SH ERRORS
.LP
The \fItempnam\fP() function shall fail if:
.TP 7
.B ENOMEM
Insufficient storage space is available.
.sp
.LP
\fIThe following sections are informative.\fP
.SH EXAMPLES
.SS Generating a Pathname
.LP
The following example generates a pathname for a temporary file in
directory \fB/tmp\fP, with the prefix \fIfile\fP. After the
filename has been created, the call to \fIfree\fP() deallocates the
space used to store the
filename.
.sp
.RS
.nf

\fB#include <stdio.h>
#include <stdlib.h>
\&...
char *directory = "/tmp";
char *fileprefix = "file";
char *file;
.sp

file = tempnam(directory, fileprefix);
free(file);
\fP
.fi
.RE
.SH APPLICATION USAGE
.LP
This function only creates pathnames. It is the application's responsibility
to create and remove the files. Between the time a
pathname is created and the file is opened, it is possible for some
other process to create a file with the same name. Applications
may find \fItmpfile\fP() more useful.
.SH RATIONALE
.LP
None.
.SH FUTURE DIRECTIONS
.LP
None.
.SH SEE ALSO
.LP
\fIfopen\fP() , \fIfree\fP() , \fIopen\fP() , \fItmpfile\fP() , \fItmpnam\fP()
, \fIunlink\fP() ,
the Base Definitions volume of IEEE\ Std\ 1003.1-2001, \fI<stdio.h>\fP
.SH COPYRIGHT
Portions of this text are reprinted and reproduced in electronic form
from IEEE Std 1003.1, 2003 Edition, Standard for Information Technology
-- Portable Operating System Interface (POSIX), The Open Group Base
Specifications Issue 6, Copyright (C) 2001-2003 by the Institute of
Electrical and Electronics Engineers, Inc and The Open Group. In the
event of any discrepancy between this version and the original IEEE and
The Open Group Standard, the original IEEE and The Open Group Standard
is the referee document. The original Standard can be obtained online at
http://www.opengroup.org/unix/online.html .