The Open Group Base Specifications Issue 6
IEEE Std 1003.1, 2004 Edition
Copyright © 2001-2004 The IEEE and The Open Group, All Rights reserved.

NAME

mktemp - make a unique filename (LEGACY)

SYNOPSIS

[XSI] [Option Start] #include <stdlib.h>

char *mktemp(char *
template); [Option End]

DESCRIPTION

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.

RETURN VALUE

The mktemp() function shall return the pointer template. If a unique name cannot be created, template shall point to a null string.

ERRORS

No errors are defined.


The following sections are informative.

EXAMPLES

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);

APPLICATION USAGE

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.

RATIONALE

None.

FUTURE DIRECTIONS

This function may be withdrawn in a future version.

SEE ALSO

mkstemp(), tmpfile(), tmpnam(), the Base Definitions volume of IEEE Std 1003.1-2001, <stdlib.h>

CHANGE HISTORY

First released in Issue 4, Version 2.

Issue 5

Moved from X/OPEN UNIX extension to BASE.

Issue 6

This function is marked LEGACY.

The DESCRIPTION is updated to avoid use of the term "must" for application requirements.

End of informative text.

UNIX ® is a registered Trademark of The Open Group.
POSIX ® is a registered Trademark of The IEEE.
[ Main Index | XBD | XCU | XSH | XRAT ]