bpo-23750: Document os-system, subprocess. Patch by Martin Panter. (GH-26016) (GH-26040)

* Document os-system, subprocess Patch

* Update Doc/library/os.rst

Co-authored-by: Ken Jin <28750310+Fidget-Spinner@users.noreply.github.com>

Co-authored-by: Ken Jin <28750310+Fidget-Spinner@users.noreply.github.com>
(cherry picked from commit 5f2eb87f28)

Co-authored-by: uniocto <serit142sa33go@gmail.com>

Co-authored-by: uniocto <serit142sa33go@gmail.com>
This commit is contained in:
Miss Islington (bot) 2021-05-11 13:55:15 -07:00 committed by GitHub
parent 7bef7a180d
commit 6fc6f4366d
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
2 changed files with 11 additions and 5 deletions

View file

@ -4211,12 +4211,12 @@ written in Python, such as a mail server's external command delivery program.
the Standard C function :c:func:`system`, and has the same limitations. the Standard C function :c:func:`system`, and has the same limitations.
Changes to :data:`sys.stdin`, etc. are not reflected in the environment of Changes to :data:`sys.stdin`, etc. are not reflected in the environment of
the executed command. If *command* generates any output, it will be sent to the executed command. If *command* generates any output, it will be sent to
the interpreter standard output stream. the interpreter standard output stream. The C standard does not
specify the meaning of the return value of the C function, so the return
value of the Python function is system-dependent.
On Unix, the return value is the exit status of the process encoded in the On Unix, the return value is the exit status of the process encoded in the
format specified for :func:`wait`. Note that POSIX does not specify the format specified for :func:`wait`.
meaning of the return value of the C :c:func:`system` function, so the return
value of the Python function is system-dependent.
On Windows, the return value is that returned by the system shell after On Windows, the return value is that returned by the system shell after
running *command*. The shell is given by the Windows environment variable running *command*. The shell is given by the Windows environment variable

View file

@ -1292,11 +1292,17 @@ Replacing :func:`os.system`
sts = os.system("mycmd" + " myarg") sts = os.system("mycmd" + " myarg")
# becomes # becomes
sts = call("mycmd" + " myarg", shell=True) retcode = call("mycmd" + " myarg", shell=True)
Notes: Notes:
* Calling the program through the shell is usually not required. * Calling the program through the shell is usually not required.
* The :func:`call` return value is encoded differently to that of
:func:`os.system`.
* The :func:`os.system` function ignores SIGINT and SIGQUIT signals while
the command is running, but the caller must do this separately when
using the :mod:`subprocess` module.
A more realistic example would look like this:: A more realistic example would look like this::