tempnam()

Updated: May 06, 2022

Create a name for a temporary file

Synopsis:

#include <stdio.h>

char* tempnam( const char* dir,
               const char* pfx );

Arguments:

dir
NULL, or the directory to use in the pathname.
pfx
NULL, or a prefix to use in the pathname.
Note: If pfx isn't NULL, the string it points to must be no more than 5 bytes long.

Library:

libc

Use the -l c option to qcc to link against this library. This library is usually included automatically.

Description:

The tempnam() function generates a pathname for use as a temporary file. The pathname is in the directory specified by dir and has the prefix specified in pfx.

Note: POSIX has marked this function as obsolescent; use mkstemp() or tmpfile() instead.

If dir is NULL, the pathname is prefixed with the first accessible directory contained in:

If all of these paths are inaccessible, tempnam() attempts to use /tmp and then the current working directory.

The tempnam() function generates up to TMP_MAX unique file names before it starts to recycle them.

Returns:

A pointer to the generated file name, which you should deallocate with the free() function when the application no longer needs it, or NULL if an error occurred.

Errors:

ENOMEM
There's insufficient memory available to create the pathname.

Classification:

POSIX 1003.1 OB XSI. This function is marked as obsolescent, and may be removed from a future version of the standard.

Safety:  
Cancellation point No
Interrupt handler No
Signal handler No
Thread No

Caveats:

The tempnam() functions creates only pathnames; the application must create and remove the files.

It's possible for another thread or process to create a file with the same name between the time the pathname is created and the file is opened.