# tempnam

## PROLOG



           This manual page is part of the POSIX Programmer's Manual.  The
           Linux implementation of this interface may differ (consult the
           corresponding Linux manual page for details of Linux behavior), or
           the interface may not be implemented on Linux.
    


## NAME



           tempnam — create a name for a temporary file
    


## SYNOPSIS



           #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 pathname has been
           created, the call to _free_() deallocates the space used to store
           the pathname.
    
               #include <stdio.h>
               #include <stdlib.h>
               ...
               const char *directory = "/tmp";
               const 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.
    
           Applications should use the _tmpfile_(), _mkdtemp_(), or _mkstemp_()
           functions instead of the obsolescent _tempnam_() function.
    


## RATIONALE



           None.
    


## FUTURE DIRECTIONS



           The _tempnam_() function may be removed in a future version.
    


* * *