NAME

SYNOPSIS

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

ERRORS

No errors are defined.

The following sections are informative.

EXAMPLES

Generating a Filename

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