tmpnam(3) CLIX tmpnam(3)
NAME
tmpnam, tempnam - Creates a name for a temporary file
LIBRARY
Standard C Library (libc.a)
SYNOPSIS
#include <stdio.h>
char *tmpnam(
char *string );
char *tempnam(
char *dir ,
char *pfx );
PARAMETERS
string Points to a name string.
dir Points to a directory.
pfx Points to a string to use as a file prefix.
DESCRIPTION
These functions generate filenames that can safely be used for a temporary
file.
The tmpnam() function always generates a filename using the path-prefix
defined as P_tmpdir in the <stdio.h> header file. If string is NULL,
tmpnam() leaves its result in an internal static area and returns a
pointer to that area. The next call to tmpnam() will destroy the contents
of the area. If string is not it is assumed to be the address of an array
of at least L_tmpnam bytes, where L_tmpnam is a constant defined in
stdio.h; tmpnam() places its result in that array and returns string.
The tempnam() function allows the user to control the choice of a
directory. The argument dir points to the name of the directory in which
the file is to be created. If dir is or points to a string that is not a
name for an appropriate directory, the path-prefix defined as P_tmpdir in
the <stdio.h> header file is used. If that directory is not accessible,
/tmp will be used as a last resort. This entire sequence can be up-staged
by providing an environment variable TMPDIR in the user's environment,
whose value is the name of the desired temporary-file directory.
Many applications prefer their temporary files to have certain favorite
initial letter sequences in their names. Use the pfx argument for this.
2/94 - Intergraph Corporation 1
tmpnam(3) CLIX tmpnam(3)
This argument may be or point to a string of up to five characters to be
used as the first few characters of the temporary filename.
The tempnam() function uses malloc() to get space for the constructed
filename, and returns a pointer to this area. Thus, any pointer value
returned from tempnam() may serve as an argument to free() [see malloc()].
If tempnam() cannot return the expected result for any reason, that is,
malloc() failed, or none of the above mentioned attempts to find an
appropriate directory was successful, a pointer will be returned.
If called more than 17,576 times in a single process, these functions will
start recycling previously used names.
Between the time a filename is created and the file is opened, it is
possible for some other process to create a file with the same name. This
can never happen if that other process is using these functions or
mktemp() and the filenames are chosen to render duplication by other means
unlikely.
NOTES
These functions generate a different filename each time they are called.
Files created using these functions and either fopen() or creat() are
temporary only in the sense that they reside in a directory intended for
temporary use, and their names are unique. It is the user's
responsibility to use unlink() to remove the file when its use is ended.
RETURN VALUES
See the DESCRIPTION.
RELATED INFORMATION
Functions: creat(2), unlink(2), fopen(3), malloc(3), mktemp(3),
tmpfile(3)
2 Intergraph Corporation - 2/94