tempnam()

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.

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.

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

  • the temporary file directory P_tmpdir (defined in <stdio.h>)
  • the TMPDIR environment variable
  • the _PATH_TMP constant (defined in <paths.h>).

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

Errors:

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

Classification:

POSIX 1003.1 XSI

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.

Last modified: 2013-12-23

comments powered by Disqus