mkstemp

TriggerTek Logo
abcdefghijklmnopqrstuvwxyz_
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  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	 tem-
	      plate is unchanged.

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

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

       More generally, the POSIX specification does not	 say  anything	about
       file  modes,  so	 the  application  should  make sure its umask is set
       appropriately before calling mkstemp.

CONFORMING TO
       BSD 4.3, POSIX 1003.1-2001

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

SEE ALSO
       mkdtemp(3), mktemp(3), tmpnam(3), tempnam(3), tmpfile(3)



GNU				  2001-12-23			   MKSTEMP(3)