/* Void Main's man pages */

{ phpMan } else { main(); }

Command: man perldoc info search(apropos)  


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



NAME
       tmpnam, tmpnam_r - create a name for a temporary file

SYNOPSIS
       #include <stdio.h>

       char *tmpnam(char *s);

DESCRIPTION
       The tmpnam() function returns a pointer to a string that is a valid filename, and such that a file with this name did not
       exist at some point in time, so that naive programmers may think it a suitable name for a temporary file.  If  the  argu-
       ment  s  is NULL this name is generated in 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 case of success.

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

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

ERRORS
       No errors are defined.

CONFORMING TO
       SVr4, 4.3BSD, C89, C99, POSIX.1-2001.  POSIX.1-2008 marks tmpnam() as obsolete.

NOTES
       The tmpnam() function generates a different string each time it is called, up to TMP_MAX times.  If  it  is  called  more
       than TMP_MAX times, the behavior is implementation defined.

       Although  tmpnam()  generates  names  that are difficult to guess, it is nevertheless possible that between the time that
       tmpnam() returns a pathname, and the time that the program opens it, another program might  create  that  pathname  using
       open(2), or create it as a symbolic link.  This can lead to security holes.  To avoid such possibilities, use the open(2)
       O_EXCL flag to open the pathname.  Or better yet, use mkstemp(3) or tmpfile(3).

       Portable applications that  use  threads  cannot  call  tmpnam()  with  a  NULL  argument  if  either  _POSIX_THREADS  or
       _POSIX_THREAD_SAFE_FUNCTIONS is defined.

       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 for this function, define
       _SVID_SOURCE or _BSD_SOURCE before including <stdio.h>.

BUGS
       Never use this function.  Use mkstemp(3) or tmpfile(3) instead.

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

COLOPHON
       This page is part of release 3.25 of the Linux man-pages project.  A description of the project,  and  information  about
       reporting bugs, can be found at http://www.kernel.org/doc/man-pages/.



                                                           2008-08-06                                                  TMPNAM(3)

Valid XHTML 1.0!Valid CSS!