Provided by: manpages-pt-dev_20040726-4_all bug


       mktemp - make a unique temporary file name


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