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

NAME

       mkstemp - create a unique temporary file

SYNOPSIS

       #include <stdlib.h>

       int mkstemp(char *template);

DESCRIPTION

       The mkstemp() 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. The file is then created with mode read/write and permissions 0666 (glibc
       2.0.6 and earlier), 0600 (glibc 2.0.7 and later).  Since it  will  be  modified,  template
       must  not  be a string constant, but should be declared as a character array.  The file is
       opened with the O_EXCL flag, guaranteeing that when mkstemp returns  successfully  we  are
       the only user.

RETURN VALUE

       The  mkstemp()  function  returns  the  file  descriptor fd of the temporary file or -1 on
       error.

ERRORS

       EINVAL The last six characters of template were not XXXXXX.  Now template is unchanged.

       EEXIST Could not create a unique temporary filename.  Now the  contents  of  template  are
              undefined.

BUGS

       The  old  behaviour  (creating  a  file with mode 0666) may be a security risk, especially
       since other Unix flavours use 0600, and somebody might overlook this detail  when  porting
       programs.

CONFORMING TO

       BSD 4.3

NOTE

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

SEE ALSO

       mktemp(3), tmpnam(3), tempnam(3), tmpfile(3)