1995-03-17 16:07:09 +00:00
|
|
|
\section{Standard Module \sectcode{tempfile}}
|
1997-07-17 16:34:52 +00:00
|
|
|
\label{module-tempfile}
|
1995-03-01 14:36:00 +00:00
|
|
|
\stmodindex{tempfile}
|
|
|
|
\indexii{temporary}{file name}
|
|
|
|
\indexii{temporary}{file}
|
|
|
|
|
1998-02-13 06:58:54 +00:00
|
|
|
\setindexsubitem{(in module tempfile)}
|
1995-03-01 14:36:00 +00:00
|
|
|
|
1995-03-13 10:03:32 +00: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 14:36:00 +00: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
|
|
|
|
are initialized at the first call to \code{mktemp()}.
|
|
|
|
|
|
|
|
\begin{datadesc}{tempdir}
|
|
|
|
When set to a value other than \code{None}, this variable defines the
|
|
|
|
directory in which filenames returned by \code{mktemp()} reside. The
|
|
|
|
default is taken from the environment variable \code{TMPDIR}; if this
|
1998-01-09 22:30:32 +00:00
|
|
|
is not set, either \file{/usr/tmp} is used (on \UNIX{}), or the current
|
1995-03-01 14:36:00 +00:00
|
|
|
working directory (all other systems). No check is made to see
|
|
|
|
whether its value is valid.
|
|
|
|
\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
|
|
|
|
\code{mktemp()}. A string of decimal digits is added to generate
|
1998-01-09 22:30:32 +00:00
|
|
|
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 14:36:00 +00:00
|
|
|
other systems).
|
|
|
|
\end{datadesc}
|
|
|
|
|
1995-03-13 10:03:32 +00:00
|
|
|
Warning: if a \UNIX{} process uses \code{mktemp()}, then calls
|
1995-03-01 14:36:00 +00:00
|
|
|
\code{fork()} and both parent and child continue to use
|
|
|
|
\code{mktemp()}, the processes will generate conflicting temporary
|
|
|
|
names. To resolve this, the child process should assign \code{None}
|
|
|
|
to \code{template}, to force recomputing the default on the next call
|
|
|
|
to \code{mktemp()}.
|