TMPNAM(3) Library Functions Manual TMPNAM(3)

tmpnamcreate a name for a temporary file

#include <stdio.h>

char *tmpnam(char *s);

[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.

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 s; tmpnam () shall write its result in that array and shall return the argument as its value.

No errors are defined.

The following example generates a unique filename and stores it in the array pointed to by .

#include <stdio.h>
...
char filename[L_tmpnam+1];
char *ptr;


ptr = tmpnam(filename);

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.

None.

None.

fopen(3), open(3), tempnam(3), tmpfile(3), unlink(3), the Base Definitions volume of IEEE Std 1003.1-2001 (“POSIX.1”), <stdio.h>

First released in Issue 1. Derived from Issue 1 of the SVID.

The DESCRIPTION is updated for alignment with the POSIX Threads Extension.

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 ().

footer end

December 6, 2001 posix.fail