ABCDEFGHIJKLMNOPQRSTUVWXYZ

tempnam

TEMPNAM(3)                 Linux Programmer's Manual                TEMPNAM(3)



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  temp-
       nam()  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)  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  file-
       name, 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 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.

BUGS
       The precise meaning of `appropriate' is undefined;  it  is  unspecified
       how  accessibility  of a directory is determined.  Never use this func-
       tion. Use mkstemp(3) instead.

CONFORMING TO
       SVID 2, BSD 4.3

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



                                  1999-06-14                        TEMPNAM(3)