|Linux & Unix Commands - Search Man Pages
TEMPNAM(3) Linux Programmer's Manual TEMPNAM(3)
tempnam - create a name for a temporary file
char *tempnam(const char *dir, const char *pfx);
The tempnam() function returns a pointer to a string that is a valid filename, and such
that a file with this name did not exist when tempnam() checked. The filename suffix of
the pathname generated will start with pfx in case pfx is a non-NULL string of at most
five bytes. The directory prefix part of the pathname generated is required to be `appro-
priate' (often that at least implies writable). Attempts to find an appropriate directory
go through the following steps: (i) In case the environment variable TMPDIR exists and
contains the name of an appropriate directory, that is used. (ii) Otherwise, if the dir
argument is non-NULL and appropriate, it is used. (iii) Otherwise, P_tmpdir (as defined
in <stdio.h>) is used when appropriate. (iv) Finally an implementation-defined directory
may be used.
The tempnam() function returns a pointer to a unique temporary filename, or NULL if a
unique name cannot be generated.
ENOMEM Allocation of storage failed.
SUSv2 does not mention the use of TMPDIR; glibc will use it only when the program is not
suid. SVID2 specifies that the directory used under (iv) is /tmp. SVID2 specifies that
the string returned by tempnam() was allocated using malloc(3) and hence can be freed by
The tempnam() function generates a different string each time it is called, up to TMP_MAX
(defined in <stdio.h>) times. If it is called more than TMP_MAX times, the behaviour is
In case the pfx argument has length larger than five, glibc will use the first five bytes.
Upon failure to find a unique name, glibc will return EEXIST.
The precise meaning of `appropriate' is undefined; it is unspecified how accessibility of
a directory is determined. Never use this function. Use mkstemp(3) instead.
SVID 2, BSD 4.3
mktemp(3), mkstemp(3), tmpfile(3), tmpnam(3)
All times are GMT -4. The time now is 03:30 AM.