Seth Woolley's Man Viewer

tmpnam(3) - tmpnam, tmpnam_r, tmpnam, tmpnam_r - create a name for a temporary file - man 3 tmpnam

([section] manual, -k keyword, -K [section] search, -f whatis)
man plain no title

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

       tmpnam, tmpnam_r - create a name for a temporary file(1,n)

       #include <stdio.h>

       char *tmpnam(char *s);

       The  tmpnam()  function  returns  a pointer to a string(3,n) that is a valid
       filename, and such that a file(1,n) with this name did  not  exist  at  some
       point  in(1,8)  time(1,2,n), so that naive programmers may think it a suitable name
       for a temporary file. If the argument s is NULL this name is  generated
       in(1,8) an internal static buffer and may be overwritten by the next call to
       tmpnam().  If s is not NULL, the name is copied to the character  array
       (of  length  at  least  L_tmpnam)  pointed  to  by s and the value s is
       returned in(1,8) case of success.

       The path name that is created, has a directory prefix P_tmpdir.   (Both
       L_tmpnam  and  P_tmpdir are defined in(1,8) <stdio.h>, just like the TMP_MAX
       mentioned below.)

       The tmpnam() function returns a pointer to a unique temporary filename,
       or NULL if(3,n) a unique name cannot be generated.

       No errors are defined.

       The  tmpnam()  function  generates  a  different string(3,n) each time(1,2,n) it is
       called, up to TMP_MAX times. If it is called more than  TMP_MAX  times,
       the behaviour is implementation defined.

       Portable  applications  that use threads cannot call tmpnam() with NULL
       parameter if(3,n) either _POSIX_THREADS or  _POSIX_THREAD_SAFE_FUNCTIONS  is

       A POSIX draft proposed to use a function tmpnam_r() defined by

            char *tmpnam_r(char *s) {
                return s ? tmpnam(s) : NULL;

       apparently  as  a warning not to use NULL.  A few systems implement it.
       To get a glibc prototype, define  _SVID_SOURCE  or  _BSD_SOURCE  before
       including <stdio.h>.

       Never use this function. Use mkstemp(3) instead.

       SVID 2, POSIX, BSD 4.3, ISO 9899

       mkstemp(3), mktemp(1,3)(3), tempnam(3), tmpfile(3)

                                  2003-11-15                         TMPNAM(3)

References for this manual (incoming links)