Name
tmpnam
Synopsis
Generates a unique filename
#include <stdio.h> char *tmpnam
( char *s
);
The tmpnam()
function
generates a unique filename suitable for using for temporary files,
and returns a pointer to the name string. If the pointer argument
s
is not a null pointer, then tmpnam()
places the name string in a
buffer addressed by s
. The size of the
buffer is assumed to be at least equal to the macro L_tmpnam
. If s
is a null pointer, then the return value points to the filename in
tmpnam()
’s internal, static
buffer, where it may be modified by subsequent tmpnam()
calls.
If you use a name supplied by tmpnam()
to create a file, that does not
mean the file is a temporary file in the sense of tmpfile()
; it will not be automatically
deleted on closing.
The tmpnam()
function
generates a different name each time it is called, and can generate
at least TMP_MAX
distinct names
(some of which may be used by tmpfile()
). The macros L_tmpnam
and TMP_MAX
are defined in stdio.h. TMP_MAX
is greater than or equal to 25.
The tmpnam()
function returns a
null pointer on failure.
Example
char buffer[L_tmpnam], *name = buffer;
FILE *fpOut;
int result;
name =tmpnam
( buffer );
if ( name == NULL )
{
fputs( "Failed to generate temporary file name", stderr );
return -1;
}
fpOut = fopen( name, "w+" );
/* ... write something in the file, edit it ... */
fclose( fpOut );
printf( "Results saved in %s\n", name );
Get C in a Nutshell now with the O’Reilly learning platform.
O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.