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