Amiga Unix — 68040 · 68060

Manual pages › BSD C library (3B)

mkstemp(3B)

make a unique file name

From the original Amiga UNIX 2.1 manual. Some things it mentions may not be in this release.

Also by this name: mkstemp(3), Libraries: curses, OPEN LOOK and others

NAME

mkstemp - make a unique file name

SYNOPSIS

cc [ flag... ] file ... -lucb
mkstemp(template)
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.

SEE ALSO

getpid(2),   open(2),   tmpfile(3S),   tmpnam(3S)   in   the
Programmer's Reference Manual.

RETURN VALUE

mkstemp returns -1 if no suitable file could be created.

NOTES

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.