TMPNAM
Section: Linux Programmer's Manual (3)
Updated: 2003-11-15
Index
Return to Main Contents
NAME
tmpnam, tmpnam_r - create a name for a temporary file
SYNOPSIS
#include <stdio.h>
char *tmpnam(char *s);
DESCRIPTION
The
tmpnam()
function returns a pointer to a string that is a valid filename,
and such that a file with this name did not exist at some point
in time, 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 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 case of success.
The path name that is created, has a directory prefix
P_tmpdir.
(Both
L_tmpnam
and
P_tmpdir
are defined in
<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 a unique name cannot be generated.
ERRORS
No errors are defined.
NOTES
The
tmpnam()
function generates a different string each time 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 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(3),
tempnam(3),
tmpfile(3)
Index
- NAME
-
- SYNOPSIS
-
- DESCRIPTION
-
- RETURN VALUE
-
- ERRORS
-
- NOTES
-
- BUGS
-
- CONFORMING TO
-
- SEE ALSO
-
This document was created by
man2html,
using the manual pages.
Time: 00:12:41 GMT, May 13, 2005
www.fiveanddime.net