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)