tmpnam(), tempnam() — create a name for a temporary file
char *tmpnam(char *s);
char *tempnam(const char *dir, const char *pfx);
generate file names that can safely be used for a temporary file.
Always generates a file name using the path-prefix defined as
leaves its result in an internal static area
and returns a pointer to that area.
The next call to
destroys the contents of the area.
it is assumed to be the address of an array of at least
is a constant defined in
places its result in that array and returns
For multi-thread applications, if
pointer, the operation is not performed and a
pointer is returned.
allows the user to control the choice of a directory.
points to the name of the directory
in which the file is to be created.
or points to a string that is not an appropriate directory name,
the path-prefix defined as
header file is used.
If that directory is not accessible,
is used as a last resort.
This entire sequence can be up-staged by
providing an environment variable
in the user's environment,
whose value is the name of the desired temporary-file directory.
In order to request the default behavior for either
a NULL value must
be passed in
If valid parameters are not
passed in, behavior is undefined.
Many applications are written such that temporary files
have certain initial character sequences in their names.
argument to define a given prefix.
The argument can be
or point to a string of up to five characters
to be used as the first characters in the temporary-file name.
to get space for the constructed file name,
and returns a pointer to this area.
Thus, any pointer value returned from
can serve as an argument to
cannot return the expected result for any reason; i.e.,
failed, or none of the above mentioned attempts
to find an appropriate directory was successful, a
pointer is returned.
generate a different file name each time they are called,
but start recycling previously used names if called more than
times in a single process.
Files created using these functions and either
only in the sense that they reside in a directory
intended for temporary use,
and their names are unique.
It is the user's responsibility to use
to remove the file when it is no longer needed.
Between the time a file name is created and the file is opened, it
is possible for some other process to create a file with the same name.
This can never happen if that other process is using
these functions or
and the file names are chosen such
that duplication by other means is unlikely.
tmpnam(): AES, SVID2, SVID3, XPG2, XPG3, XPG4, FIPS 151-2, POSIX.1, ANSI C
tempnam(): AES, SVID2, SVID3, XPG2, XPG3, XPG4