tmpnam, tempnam - Construct the name for a temporary file
char *s ); char *tempnam(
const char *directory,
const char *prefix );
Standard C Library (libc)
Interfaces documented on this reference page conform to
industry standards as follows:
tmpnam(), tempnam(): XSH4.2
Refer to the standards(5) reference page for more information
about industry standards and associated tags.
Specifies the address of an array of at least the number
of bytes specified by L_tmpnam, a constant defined in the
stdio.h header file. Points to the pathname of the directory
in which the file is to be created. Points to an
initial letter sequence with which the filename begins.
The prefix parameter can be null, or it can point to a
string of up to 5 bytes to be used as the beginning of the
The tmpnam() and tempnam() functions generate filenames
for temporary files.
The tmpnam() function generates a filename using the pathname
defined as P_tmpdir in the stdio.h header file.
Files created using this function reside in a directory
intended for temporary use, and their names are unique. It
is the application's responsibility to use the unlink()
function to remove the files when they are no longer
Between the time a filename is created and the file is
opened, it is possible for some other process to create a
file with the same name. This should not happen if that
other process uses these functions or the mktemp() function,
and if the filenames are chosen to make duplication
by other means unlikely.
The tempnam() function allows you to control the choice of
a directory. If the directory parameter is null or points
to a string that is not a pathname for an appropriate
directory, the pathname defined as P_tmpdir in the stdio.h
header file is used. If that pathname is not accessible,
/tmp is used. You can bypass the selection of a pathname
by providing an environment variable, TMPDIR, in the
user's environment. The value of the TMPDIR variable is a
pathname for the desired temporary file directory.
The prefix parameter can be used to specify a prefix of up
to 5 bytes for the temporary filename.
If the s parameter is null, the tmpnam() function places
its result into an internal thread-specific buffer and
returns a pointer to that area. Subsequent calls to this
function from the same thread overwrite this buffer.
The tmpnam() function generates a different filename each
time it is called.
[Tru64 UNIX] If tmpnam() is called more than TMP_MAX
times by a single process, it starts recycling previously
If the s parameter is null, tmpnam() function places its
result into an internal thread-specific buffer and returns
a pointer to that area.
If the s parameter is not null, it is assumed to be the
address of an array of at least the number of bytes specified
by the L_tmpnam constant. The tmpnam() function
places its results into that array and returns the value
of the s parameter.
Upon successful completion, the tempnam() function returns
a pointer to the generated pathname, suitable for use in a
subsequent call to the free() function. Otherwise, null is
returned and errno is set to indicate the error.
If the tempnam() function fails, errno may be set to the
following value: Insufficient storage space is available.
Functions: fopen(3), free(3), malloc(3), mktemp(3),
open(2), tmpfile(3), unlink(2)
[ Back ]