Provided by: manpages-pt-dev_20040726-4_all bug


       tempnam - create a name for a temporary file


       #include <stdio.h>

       char *tempnam(const char *dir, const char *pfx);


       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.


       The  tempnam()  function  returns  a  pointer  to  a  unique  temporary
       filename, or NULL if a unique name cannot be generated.


       ENOMEM Allocation of storage failed.


       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.


       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


       mktemp(3), mkstemp(3), tmpfile(3), tmpnam(3)

                                 14 June 1999                       TEMPNAM(3)