Museum

Home

Lab Overview

Retrotechnology Articles

⇒ Online Manual

Media Vault

Software Library

Restoration Projects

Artifacts Sought

Related Articles

getpid(2)

open(2V)

tmpfile(3S)

tmpnam(3S)

MKTEMP(3)  —  C LIBRARY FUNCTIONS

NAME

mktemp, mkstemp − make a unique file name

SYNOPSIS

char ∗mktemp(template)
char ∗template;
mkstemp(template)
char ∗template;

DESCRIPTION

mktemp creates a unique file name, typically in a temporary filesystem, by replacing template with a unique file name, and returns the address of template. The string in template should contain a file name with six trailing Xs; mktemp 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 makes the same replacement to the template but returns a file descriptor for the template file open for reading and writing.  mkstemp avoids the race between testing whether the file exists and opening it for use. 

Notes:

•mktemp and mkstemp actually change 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 mktemp or mkstemp are creating a new unique filename they check 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 mktemp or mkstemp.

SEE ALSO

getpid(2), open(2V), tmpfile(3S), tmpnam(3S). 

DIAGNOSTICS

mkstemp returns an open file descriptor upon success.  It returns −1 if no suitable file could be created. 

BUGS

It is possible to run out of letters. 

Sun Release 3.2  —  Last change: 15 April 1986

Typewritten Software • bear@typewritten.org • Edmonds, WA 98026