summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorFred Drake <fdrake@acm.org>2001-08-16 21:21:28 (GMT)
committerFred Drake <fdrake@acm.org>2001-08-16 21:21:28 (GMT)
commit739282da83408783f1379e22fdedbf6d7495dcc2 (patch)
tree54e6586fe8f04cb5dc1a6479bf01c04c335f3f46
parentf6365e01076d3b9ab7de171c07622f21710206d5 (diff)
downloadcpython-739282da83408783f1379e22fdedbf6d7495dcc2.zip
cpython-739282da83408783f1379e22fdedbf6d7495dcc2.tar.gz
cpython-739282da83408783f1379e22fdedbf6d7495dcc2.tar.bz2
Re-write the description of the os.spawn*() functions, and cover the
whole family instead of just two. This closes SF bug #451630.
-rw-r--r--Doc/lib/libos.tex68
1 files changed, 51 insertions, 17 deletions
diff --git a/Doc/lib/libos.tex b/Doc/lib/libos.tex
index dc250a1..16f3690 100644
--- a/Doc/lib/libos.tex
+++ b/Doc/lib/libos.tex
@@ -942,24 +942,58 @@ Run child processes, returning opened pipes for communications. These
functions are described in section \ref{os-newstreams}.
\end{funcdescni}
-\begin{funcdesc}{spawnv}{mode, path, args}
-Execute the program \var{path} in a new process, passing the arguments
-specified in \var{args} as command-line parameters. \var{args} may be
-a list or a tuple. \var{mode} is a magic operational constant. See
-the Visual \Cpp{} Runtime Library documentation for further
-information; the constants are exposed to the Python programmer as
-listed below.
-Availability: \UNIX{}, Windows.
-\versionadded{1.6}
-\end{funcdesc}
+\begin{funcdesc}{spawnl}{mode, path, \moreargs}
+\funcline{spawnle}{mode, path, \moreargs, env}
+\funcline{spawnlp}{mode, path, \moreargs}
+\funcline{spawnlpe}{mode, path, \moreargs, env}
+\funcline{spawnv}{mode, path, args}
+\funcline{spawnve}{mode, path, args, env}
+\funcline{spawnvp}{mode, path, args}
+\funcline{spawnvpe}{mode, path, args, env}
+Execute the program \var{path} in a new process. If \var{mode} is
+\constant{P_NOWAIT}, this function returns the process ID of the new
+process; it \var{mode} is \constant{P_WAIT}, returns the process's
+exit code if it exits normally, or \code{-\var{signal}}, where
+\var{signal} is the signal that killed the process.
+
+For \function{spawnle()}, \function{spawnlpe()}, \function{spawnve()},
+and \function{spawnvpe()} (note that these all end in \character{e}),
+the \var{env} parameter must be a mapping which is used to define the
+environment variables for the new process; the \function{spawnl()},
+\function{spawnlp()}, \function{spawnv()}, and \function{spawnvp()}
+all cause the new process to inherit the environment of the current
+process.
+
+The variants which include a second \character{p} near the end
+(\function{spawnlp()}, \function{spawnlpe()}, \function{spawnvp()},
+and \function{spawnvpe()}) will use the \envvar{PATH} environment
+variable to locate the program \var{path}. The other variants,
+\function{spawnl()}, \function{spawnle()}, \function{spawnv()}, and
+\function{spawnve()}, will not use the \envvar{PATH} variable to
+locate the executable.
+
+The \character{l} and \character{v} variants of the
+\function{spawn*()} functions differ in how command-line arguments are
+passed. The \character{l} variants are perhaps the easiest to work
+with if the number of parameters is fixed when the code is written;
+the individual parameters simply become additional parameters to the
+\function{spawnl*()} functions. The \character{v} variants are good
+when the number of parameters is variable, with the arguments being
+passed in a list or tuple as the \var{args} parameter. In either
+case, the arguments to the child process must start with the name of
+the command being run.
+
+As an example, the following calls to \function{spawnlp()} and
+\function{spawnvpe()} are equivalent:
+
+\begin{verbatim}
+import os
+os.spawnlp(os.P_WAIT, 'cp', 'cp', 'index.html', '/dev/null')
+
+L = ['cp', 'index.html', '/dev/null']
+os.spawnvpe(os.P_WAIT, 'cp', L, os.environ)
+\end{verbatim}
-\begin{funcdesc}{spawnve}{mode, path, args, env}
-Execute the program \var{path} in a new process, passing the arguments
-specified in \var{args} as command-line parameters and the contents of
-the mapping \var{env} as the environment. \var{args} may be a list or
-a tuple. \var{mode} is a magic operational constant. See the Visual
-\Cpp{} Runtime Library documentation for further information; the
-constants are exposed to the Python programmer as listed below.
Availability: \UNIX{}, Windows.
\versionadded{1.6}
\end{funcdesc}