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 ear­
       lier), 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)


Man(1) output converted with man2html