HPUX tmpnam[3s]

tmpnam(3S) tmpnam(3S)
NAME
tmpnam(), tempnam() - create a name for a temporary file
SYNOPSIS
#include <stdio.h>
char *tmpnam(char *s);
char *tempnam(const char *dir, const char *pfx);
DESCRIPTION
tmpnam() and tempnam() generate file names that can safely be used for
a temporary file.
tmpnam() Always generates a file name using the path-prefix
defined as P_tmpdir in the <stdio.h> header file.
If s is NULL, tmpnam() leaves its result in an
internal static area and returns a pointer to that
area. The next call to tmpnam() destroys the
contents of the area. If s is not NULL, it is
assumed to be the address of an array of at least
L_tmpnam bytes, where L_tmpnam is a constant
defined in <stdio.h>; tmpnam() places its result
in that array and returns s.
tempnam() allows the user to control the choice of a
directory. The argument dir points to the name of
the directory in which the file is to be created.
If dir is NULL or points to a string that is not
an appropriate directory name, the path-prefix
defined as P_tmpdir in the <stdio.h> header file
is used. If that directory is not accessible,
/tmp is used as a last resort. This entire
sequence can be eliminated by providing an
environment variable TMPDIR in the user's
environment, whose value is the name of the
desired temporary-file directory.
Many applications are written such that temporary files have certain
initial character sequences in their names. Use the pfx argument to
define a given prefix. The argument can be NULL or point to a string
of up to five characters to be used as the first characters in the
temporary-file name.
tempnam() uses malloc() (see malloc(3C)) to get space for the
constructed file name, and returns a pointer to this area. Thus, any
pointer value returned from tempnam() can serve as an argument to
free() (see malloc(3C)). If tempnam() cannot return the expected
result for any reason; i.e., malloc() failed, or none of the above
mentioned attempts to find an appropriate directory was successful, a
NULL pointer is returned.
Hewlett-Packard Company - 1 - HP-UX Release 9.0: August 1992
tmpnam(3S) tmpnam(3S)
NOTES
tmpnam() and tempnam() generate a different file name each time they
are called, but start recycling previously used names if called more
than TMP_MAX times in a single process.
Files created using these functions and either fopen() or creat() (see
fopen(3S) and creat(2)) are temporary 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 unlink(2) to remove
the file when it is no longer needed.
WARNINGS
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 mktemp, and the file names are chosen such that duplication by
other means is unlikely.
SEE ALSO
creat(2), unlink(2), malloc(3C), mktemp(3C), fopen(3S), tmpfile(3S).
STANDARDS CONFORMANCE
tmpnam(): AES, SVID2, XPG2, XPG3, XPG4, FIPS 151-2, POSIX.1, ANSI C
tempnam(): AES, SVID2, XPG2, XPG3, XPG4
Hewlett-Packard Company - 2 - HP-UX Release 9.0: August 1992