cpython/Doc/libtempfile.tex

51 lines
2.0 KiB
TeX
Raw Normal View History

\section{Standard Module \sectcode{tempfile}}
\label{module-tempfile}
1995-03-01 10:36:00 -04:00
\stmodindex{tempfile}
\indexii{temporary}{file name}
\indexii{temporary}{file}
1995-03-13 06:03:32 -04:00
This module generates temporary file names. It is not \UNIX{} specific,
but it may require some help on non-\UNIX{} systems.
1995-03-01 10:36:00 -04:00
Note: the modules does not create temporary files, nor does it
automatically remove them when the current process exits or dies.
The module defines a single user-callable function:
\begin{funcdesc}{mktemp}{}
Return a unique temporary filename. This is an absolute pathname of a
file that does not exist at the time the call is made. No two calls
will return the same filename.
\end{funcdesc}
The module uses two global variables that tell it how to construct a
temporary name. The caller may assign values to them; by default they
1998-03-09 23:38:31 -04:00
are initialized at the first call to \function{mktemp()}.
1995-03-01 10:36:00 -04:00
\begin{datadesc}{tempdir}
When set to a value other than \code{None}, this variable defines the
1998-03-09 23:38:31 -04:00
directory in which filenames returned by \function{mktemp()} reside.
The default is taken from the environment variable \code{TMPDIR}; if
this is not set, either \file{/usr/tmp} is used (on \UNIX{}), or the
current working directory (all other systems). No check is made to
see whether its value is valid.
1995-03-01 10:36:00 -04:00
\end{datadesc}
\ttindex{TMPDIR}
\begin{datadesc}{template}
When set to a value other than \code{None}, this variable defines the
prefix of the final component of the filenames returned by
1998-03-09 23:38:31 -04:00
\function{mktemp()}. A string of decimal digits is added to generate
unique filenames. The default is either \file{@\var{pid}.} where
\var{pid} is the current process ID (on \UNIX{}), or \file{tmp} (all
1995-03-01 10:36:00 -04:00
other systems).
\end{datadesc}
1998-03-09 23:38:31 -04:00
\strong{Warning:} if a \UNIX{} process uses \code{mktemp()}, then
calls \function{fork()} and both parent and child continue to use
\function{mktemp()}, the processes will generate conflicting temporary
1995-03-01 10:36:00 -04:00
names. To resolve this, the child process should assign \code{None}
to \code{template}, to force recomputing the default on the next call
1998-03-09 23:38:31 -04:00
to \function{mktemp()}.