mktemp - make a unique filename (LEGACY)
The mktemp() function shall replace the contents of the string pointed to by template by a unique filename and return template. The application shall initialize template to be a filename with six trailing 'X' s; mktemp() shall replace each 'X' with a single byte character from the portable filename character set.
The mktemp() function shall return the pointer template. If a unique name cannot be created, template shall point to a null string.
No errors are defined.
Generating a Filename
The following example replaces the contents of the "template" string with a 10-character filename beginning with the characters "file" and returns a pointer to the "template" string that contains the new filename.#include <stdlib.h> ... char *template = "/tmp/fileXXXXXX"; char *ptr;
ptr = mktemp(template);
Between the time a pathname is created and the file opened, it is possible for some other process to create a file with the same name. The mkstemp() function avoids this problem and is preferred over this function.
This function may be withdrawn in a future version.
mkstemp() , tmpfile() , tmpnam() , the Base Definitions volume of IEEE Std 1003.1-2001, <stdlib.h>
First released in Issue 4, Version 2.
Moved from X/OPEN UNIX extension to BASE.
This function is marked LEGACY.
The DESCRIPTION is updated to avoid use of the term "must" for application requirements.