mkstemp(3C) Standard C Library Functions mkstemp(3C)NAME
mkstemp, mkdtemp - make a unique file name from a template and open the
file
SYNOPSIS
#include <stdlib.h>
int mkstemp(char *template);
char *mkdtemp(char *template);
DESCRIPTION
The mkstemp() function replaces the contents of the string pointed to
by template by a unique file name, and returns a file descriptor for
the file open for reading and writing. The function thus prevents any
possible race condition between testing whether the file exists and
opening it for use. The string in template should look like a file
name with six trailing 'X's; mkstemp() replaces each 'X' with a charac‐
ter from the portable file name character set. The characters are cho‐
sen such that the resulting name does not duplicate the name of an
existing file.
The mkdtemp() function makes the same replacement to the template as in
mktemp(3C) and creates the template directory using mkdir(2), passing a
mode argument of 0700.
RETURN VALUES
Upon successful completion, mkstemp() returns an open file descriptor.
Otherwise −1 is returned if no suitable file could be created.
ERRORS
The mkstemp() and mkdtemp() functions can set errno to any of the val‐
ues that can be returned by lstat(2).
The mkstemp() function can set errno to any of the values that can be
returned by open(2).
The mkdtemp() function can set errno to any of the values that can be
returned by mkdir(2).
USAGE
It is possible to run out of letters.
The mkstemp() function does not check to determine whether the file
name part of template exceeds the maximum allowable file name length.
The tmpfile(3C) function is preferred over this function.
The mkstemp() function is frequently used to create a temporary file
that will be removed by the application before the application termi‐
nates.
The mkstemp() function has a transitional interface for 64-bit file
offsets. See lf64(5).
ATTRIBUTES
See attributes(5) for descriptions of the following attributes:
┌─────────────────────────────┬─────────────────────────────┐
│ATTRIBUTE TYPE │ATTRIBUTE VALUE │
├─────────────────────────────┼─────────────────────────────┤
│Interface Stability │Standard │
└─────────────────────────────┴─────────────────────────────┘
SEE ALSOgetpid(2), lstat(2), mkdir(2), open(2), mktemp(3C), tmpfile(3C),
attributes(5), lf64(5), standards(5)SunOS 5.10 9 Aug 2012 mkstemp(3C)