function

tmpnam

<cstdio>
char * tmpnam ( char * str );
Generate temporary filename
A string containing a filename different from any existing file is generated.
This string can be used to create a temporary file without overwriting any other existing file.
If the str argument is a null pointer, the resulting string is stored in an internal static array that can be accessed by the return value. The content of this string is stored until a subsequent call to this same function erases it.
If the str argument is not a null pointer, it must point to an array of at least L_tmpnam bytes that will be filled with the proposed tempname. L_tmpnam is a macro constant defined in <cstdio>.
The file name returned by this function can be used to create a regular file using fopen to be used as a temp file. The file created this way, unlike those created with tmpfile is not automatically deleted when closed; You should call remove to delete this file once closed.

Parameters

str
Pointer to an array of chars where the proposed tempname will be stored as a C string. The size of this array should be at least L_tmpnam characters.
Alternativelly, a null pointer can be specified, in which case the string will be stored in an internal static array that can be accessed with the return value.

Return Value

A pointer to the C string containing the proposed name for a temporary file.
If str was a null pointer, this points to an internal buffer that will be overwritten the next time this function is called.
If str was not a null pointer, str is returned.
If the function fails to create a suitable filename, it returns a null pointer.

Example

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
/* tmpnam example */
#include <stdio.h>

int main ()
{
  char buffer [L_tmpnam];
  char * pointer;

  tmpnam (buffer);
  printf ("Tempname #1: %s\n",buffer);

  pointer = tmpnam (NULL);
  printf ("Tempname #2: %s\n",pointer);

  return 0;  
}


This program will generate two different names for temporary files. Each one has been created by one of the two methods in which tmpnam can be used.

See also