tmpnam, tempnam—name for a temporary file     #include <stdio.h>
     char *tmpnam(char *s);
     char *tempnam(char *dir, char *pfx);
     char *_tmpnam_r(struct _reent *reent, char *s);
     char *_tempnam_r(struct _reent *reent, char *dir, char *pfx);
     
   Description
Use either of these functions to generate a name for a temporary file. 
The generated name is guaranteed to avoid collision with other files
(for up to TMP_MAX calls of either function).
   
tmpnam generates file names with the value of P_tmpdir
(defined in `stdio.h') as the leading directory component of the path.
   
You can use the tmpnam argument s to specify a suitable area
of memory for the generated filename; otherwise, you can call
tmpnam(NULL) to use an internal static buffer.
   
tempnam allows you more control over the generated filename: you
can use the argument dir to specify the path to a directory for
temporary files, and you can use the argument pfx to specify a
prefix for the base filename.
   
If dir is NULL, tempnam will attempt to use the value of
environment variable TMPDIR instead; if there is no such value,
tempnam uses the value of P_tmpdir (defined in `stdio.h').
   
If you don't need any particular prefix to the basename of temporary
files, you can pass NULL as the pfx argument to tempnam.
   
_tmpnam_r and _tempnam_r are reentrant versions of tmpnam
and tempnam respectively.  The extra argument reent is a
pointer to a reentrancy structure.
   
Warnings
If you supply your own data area s for tmpnam, you must ensure
that it has room for at least L_tmpnam elements of type char.
   
Returns
tmpnam and tempnam return a pointer to the newly
generated filename.
   Portability
tmpnam, but does not specify the use of
P_tmpdir.  The System V Interface Definition (Issue 2) requires
both tmpnam and tempnam.
   Supporting OS subroutines required: close,  fstat, getpid,
isatty, lseek, open, read, sbrk, write.
   
The global pointer environ is also required.