TMPNAM(3) Linux Programmer's Manual TMPNAM(3)
NAME
tmpnam, tmpnam_r - create a name for a temporary file(1,n)
SYNOPSIS
#include <stdio.h>
char *tmpnam(char *s);
DESCRIPTION
The tmpnam() function returns a pointer to a string(3,n) that is a valid
filename, and such that a file(1,n) with this name did not exist at some
point in(1,8) time(1,2,n), so that naive programmers may think it a suitable name
for a temporary file. If the argument s is NULL this name is generated
in(1,8) an internal static buffer and may be overwritten by the next call to
tmpnam(). If s is not NULL, the name is copied to the character array
(of length at least L_tmpnam) pointed to by s and the value s is
returned in(1,8) case of success.
The path name that is created, has a directory prefix P_tmpdir. (Both
L_tmpnam and P_tmpdir are defined in(1,8) <stdio.h>, just like the TMP_MAX
mentioned below.)
RETURN VALUE
The tmpnam() function returns a pointer to a unique temporary filename,
or NULL if(3,n) a unique name cannot be generated.
ERRORS
No errors are defined.
NOTES
The tmpnam() function generates a different string(3,n) each time(1,2,n) it is
called, up to TMP_MAX times. If it is called more than TMP_MAX times,
the behaviour is implementation defined.
Portable applications that use threads cannot call tmpnam() with NULL
parameter if(3,n) either _POSIX_THREADS or _POSIX_THREAD_SAFE_FUNCTIONS is
defined.
A POSIX draft proposed to use a function tmpnam_r() defined by
char *tmpnam_r(char *s) {
return s ? tmpnam(s) : NULL;
}
apparently as a warning not to use NULL. A few systems implement it.
To get a glibc prototype, define _SVID_SOURCE or _BSD_SOURCE before
including <stdio.h>.
BUGS
Never use this function. Use mkstemp(3) instead.
CONFORMING TO
SVID 2, POSIX, BSD 4.3, ISO 9899
SEE ALSO
mkstemp(3), mktemp(1,3)(3), tempnam(3), tmpfile(3)
2003-11-15 TMPNAM(3)