tmpnam
, tempnam
—name for a temporary file#include <stdio.h> char *tmpnam(char *s); char *tempnam(char *dir, char *pfx); char *_tmpnam_r(struct _reent *reent, char *s); char *_tempnam_r(struct _reent *reent, char *dir, char *pfx);
Description
Use either of these functions to generate a name for a temporary file.
The generated name is guaranteed to avoid collision with other files
(for up to TMP_MAX
calls of either function).
tmpnam
generates file names with the value of P_tmpdir
(defined in `stdio.h
') as the leading directory component of the path.
You can use the tmpnam
argument s to specify a suitable area
of memory for the generated filename; otherwise, you can call
tmpnam(NULL)
to use an internal static buffer.
tempnam
allows you more control over the generated filename: you
can use the argument dir to specify the path to a directory for
temporary files, and you can use the argument pfx to specify a
prefix for the base filename.
If dir is NULL
, tempnam
will attempt to use the value of
environment variable TMPDIR
instead; if there is no such value,
tempnam
uses the value of P_tmpdir
(defined in `stdio.h
').
If you don't need any particular prefix to the basename of temporary
files, you can pass NULL
as the pfx argument to tempnam
.
_tmpnam_r
and _tempnam_r
are reentrant versions of tmpnam
and tempnam
respectively. The extra argument reent is a
pointer to a reentrancy structure.
Warnings
If you supply your own data area s for tmpnam
, you must ensure
that it has room for at least L_tmpnam
elements of type char
.
Returns
tmpnam
and tempnam
return a pointer to the newly
generated filename.
Portability
tmpnam
, but does not specify the use of
P_tmpdir
. The System V Interface Definition (Issue 2) requires
both tmpnam
and tempnam
.
Supporting OS subroutines required: close
, fstat
, getpid
,
isatty
, lseek
, open
, read
, sbrk
, write
.
The global pointer environ
is also required.