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 returns a pointer to a string that is a valid
  filename, and such that a file with this name did not exist when
  
tempnam() checked. The filename suffix of the pathname generated will
  start with 
pfx in case 
pfx is a non-NULL string of at most five
  bytes. The directory prefix part of the pathname generated is required to be
  `appropriate' (often that at least implies writable). Attempts to find an
  appropriate directory go through the following steps: (i) In case the
  environment variable TMPDIR exists and contains the name of an appropriate
  directory, that is used. (ii) Otherwise, if the 
dir argument is
  non-NULL and appropriate, it is used. (iii) Otherwise, P_tmpdir (as defined in
  
<stdio.h>) is used when appropriate. (iv) Finally an
  implementation-defined directory may be used.
RETURN VALUE¶
The 
tempnam() function returns a pointer to a unique temporary filename,
  or NULL if a unique name cannot be generated.
ERRORS¶
  - ENOMEM
 
  - Allocation of storage failed.
 
NOTES¶
SUSv2 does not mention the use of TMPDIR; glibc will use it only when the
  program is not suid. SVID2 specifies that the directory used under (iv) is
  
/tmp. SVID2 specifies that the string returned by 
tempnam() was
  allocated using 
malloc(3) and hence can be freed by 
free(3).
The 
tempnam() function generates a different string each time it is
  called, up to TMP_MAX (defined in 
<stdio.h>) times. If it is
  called more than TMP_MAX times, the behaviour is implementation defined.
In case the 
pfx argument has length larger than five, glibc will use the
  first five bytes. Upon failure to find a unique name, glibc will return
  EEXIST.
BUGS¶
The precise meaning of `appropriate' is undefined; it is unspecified how
  accessibility of a directory is determined. Never use this function. Use
  
mkstemp(3) instead.
SVID 2, BSD 4.3
SEE ALSO¶
mktemp(3), 
mkstemp(3), 
tmpfile(3), 
tmpnam(3)