The Open Group Base Specifications Issue 6
IEEE Std 1003.1, 2004 Edition
Copyright © 2001-2004 The IEEE and The Open Group, All Rights reserved.

#### NAME

> tempnam - create a name for a temporary file

#### SYNOPSIS

> ``[XSI] #include <stdio.h>
> char *tempnam(const char *`dir`, const char *`pfx`);``
> `
> `

#### DESCRIPTION

> The tempnam() function shall generate a pathname that may be used for a temporary file.

> The tempnam() function allows the user to control the choice of a directory. The dir argument points to the name of the directory in which the file is to be created. If dir is a null pointer or points to a string which is not a name for an appropriate directory, the path prefix defined as P_tmpdir in the <stdio.h> header shall be used. If that directory is not accessible, an implementation-defined directory may be used.

> Many applications prefer their temporary files to have certain initial letter sequences in their names. The pfx argument should be used for this. This argument may be a null pointer or point to a string of up to five bytes to be used as the beginning of the filename.

> Some implementations of tempnam() may use tmpnam() internally. On such implementations, if called more than {TMP_MAX} times in a single process, the behavior is implementation-defined.

#### RETURN VALUE

> Upon successful completion, tempnam() shall allocate space for a string, put the generated pathname in that space, and return a pointer to it. The pointer shall be suitable for use in a subsequent call to free(). Otherwise, it shall return a null pointer and set errno to indicate the error.

#### ERRORS

> The tempnam() function shall fail if:

> [ENOMEM]
>   Insufficient storage space is available.

The following sections are informative.

#### EXAMPLES

> ##### Generating a Pathname

> The following example generates a pathname for a temporary file in directory /tmp, with the prefix file. After the filename has been created, the call to free() deallocates the space used to store the filename.

>     #include <stdio.h>
>     #include <stdlib.h>
>     ...
>     char *directory = "/tmp";
>     char *fileprefix = "file";
>     char *file;

>     file = tempnam(directory, fileprefix);
>     free(file);

#### APPLICATION USAGE

> This function only creates pathnames. It is the application's responsibility to create and remove the files. Between the time a pathname is created and the file is opened, it is possible for some other process to create a file with the same name. Applications may find tmpfile() more useful.

#### RATIONALE

> None.

#### FUTURE DIRECTIONS

> None.

#### SEE ALSO

> fopen(), free(), open(), tmpfile(), tmpnam(), unlink(), the Base Definitions volume of IEEE Std 1003.1-2001, <stdio.h>

#### CHANGE HISTORY

> First released in Issue 1. Derived from Issue 1 of the SVID.

#### Issue 5

> The last paragraph of the DESCRIPTION was included as an APPLICATION USAGE note in previous issues.

End of informative text.

UNIX ® is a registered Trademark of The Open Group.
POSIX ® is a registered Trademark of The IEEE.
[ Main Index | XBD | XCU | XSH | XRAT ]