MKSTEMP
Section: Linux Programmer's Manual (3)
Updated: April 3, 1993
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)