Home Man
Today's Posts

Linux & Unix Commands - Search Man Pages
Man Page or Keyword Search:
Select Section of Man Page:
Select Man Page Repository:

Linux 2.6 - man page for tmpnam_r (linux section 3)

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

       tmpnam, tmpnam_r - create a name for a temporary file

       #include <stdio.h>

       char *tmpnam(char *s);

       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 argument s is NULL this name is
       generated in an internal static buffer and may be overwritten by the  next  call  to  tmp-
       nam().	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.)

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

       No errors are defined.

   Multithreading (see pthreads(7))
       The tmpnam() function is thread-safe with exceptions.  It is  not  thread-safe  if  called
       with a NULL parameter.

       The tmpnam_r() function is thread-safe.

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

       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 sym-
       bolic  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

       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 pro-
       totype for this function  from  <stdio.h>,  define  _SVID_SOURCE  or  _BSD_SOURCE  (before
       including any header file).

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

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

       This  page  is  part of release 3.55 of the Linux man-pages project.  A description of the
       project,    and	  information	 about	  reporting    bugs,	can    be    found     at

					    2013-06-21					TMPNAM(3)

All times are GMT -4. The time now is 08:43 AM.

Unix & Linux Forums Content Copyrightę1993-2018. All Rights Reserved.
Show Password

Not a Forum Member?
Forgot Password?