Museum

Home

Lab Overview

Retrotechnology Articles

⇒ Online Manual

Media Vault

Software Library

Restoration Projects

Artifacts Sought

Related Articles

tmpfile(3)

tmpnam(3)

getpid(2)

mktemp(3)  —  Subroutines

NAME

mktemp, mkstemp − Constructs a unique filename

LIBRARY

Standard C Library (libc.a),

System V Compatibility Library (libsys5.a)

Berkeley Compatibility Library (libbsd.a)

SYNOPSIS

Standard C Library #include <stdlib.h> int mkstemp (
char ∗template ); char ∗mktemp (
char ∗template);

PARAMETERS

templatePoints to a string to be replaced with a unique filename.  The string in the template parameter must be a filename with six trailing Xs. 

DESCRIPTION

The mktemp() function replaces the contents of the string pointed to by the template parameter with a unique filename.  Under libc.a, the filename is a unique combination of the thread name and process ID.  Under libsys5.a, the filename is created with the getpid function. 

The mkstemp() function performs the same substitution to the template name and also opens the file for reading and writing.  This function is not available under libsys5.a. 

NOTES

In BSD systems, the mkstemp() function was intended to avoid a race condition between generating a temporary name and creating the file. Because the name generation in this system is more random, this race condition is less likely. 

To get the BSD version of this function, compile with the Berkeley Compatibility Library (libbsd.a). 

RETURN VALUES

Upon successful completion, the mktemp() function returns the address of the string pointed to by the template parameter. 

If the string pointed to by the template parameter contains no Xs, or if the mktemp() function is unable to construct a unique filename, the first character of the template parameter string is replaced with a null character, and a null pointer is returned. 

Upon successful completion, the mkstemp() function returns an open file descriptor. If the mkstemp() function fails, it returns a value of -1. 

ERRORS

No errors are defined for this routine. 

RELATED INFORMATION

Functions: tmpfile(3), tmpnam(3), getpid(2)

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