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 argu­
       ment is non-NULL and appropriate, it is used.  (iii)  Oth­
       erwise,  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 tem­
       porary filename, or NULL if a unique name cannot be gener­
       ated.


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 speci­
       fies 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 deter­
       mined.  Never use this function. Use mkstemp(3) instead.

       SVID 2, BSD 4.3


SEE ALSO

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


Man(1) output converted with man2html