MKTEMP(3) manual page
Table of Contents
mktemp - make a unique temporary filename
#include <stdlib.h>
char *mktemp(char *template);
Feature Test Macro Requirements for glibc
(see feature_test_macros(7)
):
mktemp():
- Since glibc 2.12:
- _BSD_SOURCE
|| _SVID_SOURCE || (_XOPEN_SOURCE >= 500 ||
_XOPEN_SOURCE && _XOPEN_SOURCE_EXTENDED) &&
!(_POSIX_C_SOURCE >= 200112L || _XOPEN_SOURCE >= 600)
- Before glibc 2.12:
- _BSD_SOURCE || _SVID_SOURCE || _XOPEN_SOURCE >= 500 ||
_XOPEN_SOURCE && _XOPEN_SOURCE_EXTENDED
Never use this function; see NOTES.
The mktemp() function
generates a unique temporary filename 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 always returns template. If a unique name was created, the last
six bytes of template will have been modified in such a way that the resulting
name is unique (i.e., does not exist already) If a unique name could not
be created, template is made an empty string, and errno is set to indicate
the error.
- EINVAL
- The last six characters of template were not XXXXXX.
4.3BSD, POSIX.1-2001. POSIX.1-2008 removes the specification of
mktemp().
Never use mktemp(). Some implementations follow 4.3BSD
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)
This page is part of release 3.78 of the Linux
man-pages project. A description of the project, information about reporting
bugs, and the latest version of this page, can be found at http://www.kernel.org/doc/man-pages/.
Table of Contents