Provided by: manpages-dev_2.17-1_all bug

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 set-user-ID.  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.

CONFORMING TO

       SVID 2, 4.3BSD, POSIX 1003.1-2003

SEE ALSO

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

                                  1999-06-14                        TEMPNAM(3)