Computer Science
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
Back to the index