mktemp(3) — Subroutines
NAME
mktemp, mkstemp − Constructs a unique filename
LIBRARY
Standard C Library (libc.a),
System V Compatibility Library (libsys5.a)
Berkeley Compatibility Library (libbsd.a)
SYNOPSIS
Standard C Library #include <stdlib.h> int mkstemp (
char ∗template ); char ∗mktemp (
char ∗template);
PARAMETERS
templatePoints to a string to be replaced with a unique filename. The string in the template parameter must be a filename with six trailing Xs.
DESCRIPTION
The mktemp() function replaces the contents of the string pointed to by the template parameter with a unique filename. Under libc.a, the filename is a unique combination of the thread name and process ID. Under libsys5.a, the filename is created with the getpid function.
The mkstemp() function performs the same substitution to the template name and also opens the file for reading and writing. This function is not available under libsys5.a.
NOTES
In BSD systems, the mkstemp() function was intended to avoid a race condition between generating a temporary name and creating the file. Because the name generation in this system is more random, this race condition is less likely.
To get the BSD version of this function, compile with the Berkeley Compatibility Library (libbsd.a).
RETURN VALUES
Upon successful completion, the mktemp() function returns the address of the string pointed to by the template parameter.
If the string pointed to by the template parameter contains no Xs, or if the mktemp() function is unable to construct a unique filename, the first character of the template parameter string is replaced with a null character, and a null pointer is returned.
Upon successful completion, the mkstemp() function returns an open file descriptor. If the mkstemp() function fails, it returns a value of -1.
ERRORS
No errors are defined for this routine.
RELATED INFORMATION
Functions: tmpfile(3), tmpnam(3), getpid(2)