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

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

GNU                       April 3, 1993                         1