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.