NAME
tmpnam — create a
name for a temporary file
SYNOPSIS
#include
<stdio.h>
char *tmpnam(char *s);
DESCRIPTION
[CX] The functionality described on this reference page is aligned with the ISO C standard. Any conflict between the requirements described here and the ISO C standard is unintentional. This volume of IEEE Std 1003.1-2001 (“POSIX.1”) defers to the ISO C standard.
The tmpnam () function shall generate a
string that is a valid filename and that is not the same as the name of an
existing file. The function is potentially capable of generating {TMP_MAX}
different strings, but any or all of them may already be in use by existing
files and thus not be suitable return values.
The tmpnam () function generates a
different string each time it is called from the same process, up to
{TMP_MAX} times. If it is called more than {TMP_MAX} times, the behavior is
implementation-defined.
The implementation shall behave as if no function defined in this
volume of IEEE Std 1003.1-2001
(“POSIX.1”), except tempnam(3), calls
tmpnam ().
[CX] If the application uses any of the
functions guaranteed to be available if either _POSIX_THREAD_SAFE_FUNCTIONS
or _POSIX_THREADS is defined, the application shall ensure that the
tmpnam () function is called with a non-NULL
parameter.
RETURN VALUE
Upon successful completion, tmpnam ()
shall return a pointer to a string. If no suitable string can be generated,
the tmpnam () function shall return a null
pointer.
If the argument s is a null pointer,
tmpnam () shall leave its result in an internal
static object and return a pointer to that object. Subsequent calls to
tmpnam () may modify the same object. If the
argument s is not a null pointer, it is presumed to point
to an array of at least L_tmpnam
char s;
tmpnam () shall write its result in that array and
shall return the argument as its value.
ERRORS
No errors are defined.
EXAMPLES
Generating a Filename
The following example generates a unique filename and stores it in the array pointed to by ptr.
#include <stdio.h> ... char filename[L_tmpnam+1]; char *ptr; ptr = tmpnam(filename);
APPLICATION USAGE
This function only creates filenames. 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 tmpfile(3) more useful.
RATIONALE
None.
FUTURE DIRECTIONS
None.
SEE ALSO
fopen(3), open(3), tempnam(3), tmpfile(3), unlink(3), the Base Definitions volume of IEEE Std 1003.1-2001 (“POSIX.1”), <stdio.h>
CHANGE HISTORY
First released in Issue 1. Derived from Issue 1 of the SVID.
Issue 5
The DESCRIPTION is updated for alignment with the POSIX Threads Extension.
Issue 6
Extensions beyond the ISO C standard are marked.
The DESCRIPTION is updated to avoid use of the term "must" for application requirements.
The DESCRIPTION is expanded for alignment with the ISO/IEC 9899:1999 (“ISO C99”) standard.
IEEE Std 1003.1-2001
(“POSIX.1”)/Cor 2-2004, item XSH/TC2/D6/142 is applied,
updating the DESCRIPTION to allow implementations of the
tempnam(3) function to call tmpnam
().
End of informative text. footer end