Originální popis anglicky:
mktemp - make a unique temporary file name
Návod, kniha: Linux Programmer's Manual
#include <stdlib.h>
char *mktemp(char *template);
The
mktemp() function generates a unique temporary file name from
template. The last six characters of
template must be XXXXXX and
these are replaced with a string that makes the filename unique. Since it will
be modified,
template must not be a string constant, but should be
declared as a character array.
The
mktemp() function returns NULL on error (
template did not end
in XXXXXX) and
template otherwise. If the call was successful, the last
six bytes of
template will have been modified in such a way that the
resulting name is unique (does not exist already). If the call was
unsuccessful,
template is made an empty string.
- EINVAL
- The last six characters of template were not
XXXXXX.
BSD 4.3. POSIX dictates
tmpnam(3).
The prototype is in
<unistd.h> for libc4, libc5, glibc1; glibc2
follows the Single Unix Specification and has the prototype in
<stdlib.h>.
Never use
mktemp(). Some implementations follow BSD 4.3 and replace
XXXXXX by the current process id and a single letter, so that at most 26
different names can be returned. Since on the one hand the names are easy to
guess, and on the other hand there is a race between testing whether the name
exists and opening the file, every use of
mktemp() is a security risk.
The race is avoided by
mkstemp(3).
mkstemp(3),
tempnam(3),
tmpfile(3),
tmpnam(3)