Man Linux: Main Page and Category List

NAME

       tmpnam - create a name for a temporary file

SYNOPSIS

       #include <stdio.h>

       char *tmpnam(char *s);

DESCRIPTION

       The  tmpnam() function shall generate a string that is a valid filename
       and that is not the same as the name of an existing file. The  function
       is  potentially  capable of generating {TMP_MAX} different strings, but
       any or all of them may already be in use by existing files and thus not
       be suitable return values.

       The  tmpnam()  function  generates  a  different string each time it is
       called from the same process, up to {TMP_MAX} times.  If it  is  called
       more than {TMP_MAX} times, the behavior is implementation-defined.

       The  implementation  shall  behave  as  if  no function defined in this
       volume of IEEE Std 1003.1-2001 calls tmpnam().

       If the application uses any of the functions guaranteed to be available
       if  either  _POSIX_THREAD_SAFE_FUNCTIONS  or _POSIX_THREADS is defined,
       the application shall ensure that the tmpnam() function is called  with
       a non-NULL parameter.

RETURN VALUE

       Upon  successful  completion,  tmpnam()  shall  return  a  pointer to a
       string. If no suitable string can be generated, the  tmpnam()  function
       shall return a null pointer.

       If the argument s is a null pointer, tmpnam() shall leave its result in
       an internal  static  object  and  return  a  pointer  to  that  object.
       Subsequent  calls  to  tmpnam()  may  modify  the  same  object. If the
       argument s is not a null pointer, it is presumed to point to  an  array
       of  at  least  L_tmpnam  chars; tmpnam() shall write its result in that
       array and shall return the argument as its value.

ERRORS

       No errors are defined.

       The following sections are informative.

EXAMPLES

   Generating a Filename
       The following example generates a unique filename and stores it in  the
       array pointed to by ptr.

              #include <stdio.h>
              ...
              char filename[L_tmpnam+1];
              char *ptr;

              ptr = tmpnam(filename);

APPLICATION USAGE

       This   function   only  creates  filenames.  It  is  the  application’s
       responsibility to create and remove the files.

       Between the time a pathname is created and the file is  opened,  it  is
       possible  for  some  other process to create a file with the same name.
       Applications may find tmpfile() more useful.

RATIONALE

       None.

FUTURE DIRECTIONS

       None.

SEE ALSO

       fopen() , open()  ,  tempnam()  ,  tmpfile()  ,  unlink()  ,  the  Base
       Definitions volume of IEEE Std 1003.1-2001, <stdio.h>

COPYRIGHT

       Portions  of  this text are reprinted and reproduced in electronic form
       from IEEE Std 1003.1, 2003 Edition, Standard for Information Technology
       --  Portable  Operating  System  Interface (POSIX), The Open Group Base
       Specifications Issue 6, Copyright (C) 2001-2003  by  the  Institute  of
       Electrical  and  Electronics  Engineers, Inc and The Open Group. In the
       event of any discrepancy between this version and the original IEEE and
       The  Open Group Standard, the original IEEE and The Open Group Standard
       is the referee document. The original Standard can be  obtained  online
       at http://www.opengroup.org/unix/online.html .