(BSD System Compatibility)
mkstemp(3bsd)
mkstemp --
(BSD) make a unique file name
Synopsis
/usr/ucb/cc [flag . . . ] file . . .
mkstemp(char *template);
Description
mkstemp
creates a unique file name, typically in a
temporary filesystem, by replacing
template
with a unique file name, and returns a file descriptor
for the template file open for reading and writing.
The string in
template
should contain a file name with six trailing Xs;
mkstemp replaces the Xs
with a letter and the current process
ID.
The letter will be chosen so that the resulting
name does not duplicate an existing file.
mkstemp avoids the race between testing whether the
file exists and opening it for use.
Return values
mkstemp returns -1 if no suitable file could be created.
References
getpid(2),
open(2),
tmpfile(3S),
tmpnam(3S)
Notices
It is possible to run out of letters.
mkstemp
actually changes the template string which you pass;
this means that you cannot use the same template
string more than once -- you need a fresh
template for every unique file you want to open.
When mkstemp is creating a new unique filename it checks
for the prior existence of a file with that name.
This means that if you are creating more than one
unique filename, it is bad practice to use the
same root template for multiple invocations of
mkstemp.
© 2004 The SCO Group, Inc. All rights reserved.
UnixWare 7 Release 7.1.4 - 25 April 2004