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)