NAME
mktemp —
make temporary file name
(unique)
SYNOPSIS
#include
<unistd.h>
char *
mktemp(char
*template);
int
mkstemp(char
*template);
DESCRIPTION
Themktemp()
function takes the given file name template and overwrites a portion of it to
create a file name. This file name is unique and suitable for use by the
application. The template may be any file name with some number of
‘Xs’ appended to it, for example
/tmp/temp.XXXX. The trailing
‘Xs’ are replaced with the current
process number and/or a unique letter combination. The number of unique file
names mktemp() can return depends on the number of
‘Xs’ provided; six
‘Xs’ will result in
mktemp() testing roughly 26 ** 6 combinations.
The
mkstemp()
function makes the same replacement to the template and creates the template
file, mode 0600, returning a file descriptor opened for reading and writing.
This avoids the race between testing for a file's existence and opening it
for use.
RETURN VALUES
The mktemp() function returns a pointer to
the template on success and NULL on failure. The
mkstemp() function returns -1 if no suitable file
could be created. If either call fails an error code is placed in the global
variable errno.
ERRORS
The mktemp() and
mkstemp() functions may set
errno to one of the following values:
- [
ENOTDIR] - The pathname portion of the template is not an existing directory.
The mktemp() and
mkstemp() functions may also set
errno to any value specified by the
stat(2) function.
The mkstemp() function may also set
errno to any value specified by the
open(2) function.
SEE ALSO
HISTORY
A mktemp function appeared in
Version 7 AT&T UNIX.