MKTEMP(3) Library Functions Manual MKTEMP(3)NAME
mktemp - make a unique file name
SYNOPSIS
char *mktemp(template)
char *template;
mkstemp(template)
char *template;
DESCRIPTION
Mktemp creates a unique file name and returns the address of the template. The template should contain a file name with trailing X's, nor-
mally something like /tmp/tempXXXXXX. The X's are replaced by the current process number and/or a unique letter combination. Mkstemp
makes the same replacement to the template but opens the template file and returns a file descriptor open for reading and writing. Mkstemp
avoids the race between testing whether the file exists and opening it for use. The number of file name combinations mktemp and mkstemp
will try depends on the number of X's placed on the end of the template; six X's will result in them trying roughly 26 ** 6 combinations.
SEE ALSO access(2), getpid(2), open(2)DIAGNOSTICS
Mktemp returns NULL on failure, mkstemp returns -1 if no suitable file could be created.
7th Edition April 10, 1987 MKTEMP(3)
Check Out this Related Man Page
mktemp(3) Library Functions Manual mktemp(3)NAME
mktemp, mkstemp - Construct a unique file name
LIBRARY
Standard C Library (libc.so, libc.a),
System V Compatibility Library (libsys5.a)
SYNOPSIS
Standard C Library
#include <stdlib.h>
int mkstemp( char *template);
char *mktemp( char *template);
STANDARDS
Interfaces documented on this reference page conform to industry standards as follows:
mktemp(), mkstemp(): XPG4-UNIX
Refer to the standards(5) reference page for more information about industry standards and associated tags.
PARAMETERS
Points to a string to be replaced with a unique file name. The string in the template parameter must be a file name with six trailing Xs.
DESCRIPTION
The mktemp() function replaces the contents of the string pointed to by the template parameter with a unique file name. The application
must initialize template to be a file name with six trailing Xs; mktemp() replaces the Xs in the template string with a unique file name.
Under libc.a, the file name is a unique combination of the thread name and process ID. Under libsys5.a, the file name is created with the
getpid function.
The mkstemp() function performs the same substitution to the template name and also returns a file descriptor for the file and opens the
file with "owner" reading and writing privileges (0600). The function thus prevents any possible race condition between testing whether the
file exists and opening it for use. The mkstemp() function is not available under libsys5.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 file name,
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)
Standards: standards(5) delim off
mktemp(3)