HPUX tmpnam[3s]






 tmpnam(3S)                                                       tmpnam(3S)





 NAME
      tmpnam(), tempnam() - create a name for a temporary file

 SYNOPSIS
      #include <stdio.h>

      char *tmpnam(char *s);

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

 DESCRIPTION
      tmpnam() and tempnam() generate file names that can safely be used for
      a temporary file.

           tmpnam()       Always generates a file name using the path-prefix
                          defined as P_tmpdir in the <stdio.h> header file.
                          If s is NULL, tmpnam() leaves its result in an
                          internal static area and returns a pointer to that
                          area.  The next call to tmpnam() destroys the
                          contents of the area.  If s is not NULL, it is
                          assumed to be the address of an array of at least
                          L_tmpnam bytes, where L_tmpnam is a constant
                          defined in <stdio.h>; tmpnam() places its result
                          in that array and returns s.

           tempnam()      allows the user to control the choice of a
                          directory.  The argument dir points to the name of
                          the directory in which the file is to be created.
                          If dir is NULL or points to a string that is not
                          an appropriate directory name, the path-prefix
                          defined as P_tmpdir in the <stdio.h> header file
                          is used.  If that directory is not accessible,
                          /tmp is used as a last resort.  This entire
                          sequence can be eliminated by providing an
                          environment variable TMPDIR in the user's
                          environment, whose value is the name of the
                          desired temporary-file directory.

      Many applications are written such that temporary files have certain
      initial character sequences in their names.  Use the pfx argument to
      define a given prefix.  The argument can be NULL or point to a string
      of up to five characters to be used as the first characters in the
      temporary-file name.

      tempnam() uses malloc() (see malloc(3C)) to get space for the
      constructed file name, and returns a pointer to this area.  Thus, any
      pointer value returned from tempnam() can serve as an argument to
      free() (see malloc(3C)).  If tempnam() cannot return the expected
      result for any reason; i.e., malloc() failed, or none of the above
      mentioned attempts to find an appropriate directory was successful, a
      NULL pointer is returned.



 Hewlett-Packard Company            - 1 -     HP-UX Release 9.0: August 1992






 tmpnam(3S)                                                       tmpnam(3S)





 NOTES
      tmpnam() and tempnam() generate a different file name each time they
      are called, but start recycling previously used names if called more
      than TMP_MAX times in a single process.

      Files created using these functions and either fopen() or creat() (see
      fopen(3S) and creat(2)) are temporary only in the sense that they
      reside in a directory intended for temporary use, and their names are
      unique.  It is the user's responsibility to use unlink(2) to remove
      the file when it is no longer needed.

 WARNINGS
      Between the time a file name is created and the file is opened, it is
      possible for some other process to create a file with the same name.
      This can never happen if that other process is using these functions
      or mktemp, and the file names are chosen such that duplication by
      other means is unlikely.

 SEE ALSO
      creat(2), unlink(2), malloc(3C), mktemp(3C), fopen(3S), tmpfile(3S).

 STANDARDS CONFORMANCE
      tmpnam(): AES, SVID2, XPG2, XPG3, XPG4, FIPS 151-2, POSIX.1, ANSI C

      tempnam(): AES, SVID2, XPG2, XPG3, XPG4





























 Hewlett-Packard Company            - 2 -     HP-UX Release 9.0: August 1992