Provided by: manpages-dev_3.35-0.1ubuntu1_all bug

NAME

       mktemp - make a unique temporary filename

SYNOPSIS

       #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

DESCRIPTION

       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.

RETURN VALUE

       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.

ERRORS

       EINVAL The last six characters of template were not XXXXXX.

CONFORMING TO

       4.3BSD, POSIX.1-2001.  POSIX.1-2008 removes the specification of mktemp().

NOTES

       The prototype is in <unistd.h> for libc4, libc5, glibc1; glibc2 follows  the  Single  UNIX
       Specification and has the prototype in <stdlib.h>.

BUGS

       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).

SEE ALSO

       mkstemp(3), tempnam(3), tmpfile(3), tmpnam(3)

COLOPHON

       This  page  is  part of release 3.35 of the Linux man-pages project.  A description of the
       project, and information about reporting bugs, can be found at  http://man7.org/linux/man-
       pages/.