MKTEMP(3)           Linux Programmer's Manual           MKTEMP(3)

NAME
       mktemp - make a unique temporary file name

SYNOPSIS
       #include <stdlib.h>

       char *mktemp(char *template);

DESCRIPTION
       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, tem-
       plate  must  not  be  a  string  constant,  but  should be
       declared as a character array.

RETURN VALUE
       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  unsuc-
       cessful, template is made an empty string.

ERRORS
       EINVAL The  last  six  characters  of  template  were  not
              XXXXXX.

CONFORMING TO
       BSD 4.3. POSIX dictates tmpnam().

NOTE
       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  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 test-
       ing  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), tmpnam(3), tempnam(3), tmpfile(3)

GNU                       April 3, 1993                         1