Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
C
cpython
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Issues
0
Issues
0
List
Boards
Labels
Milestones
Merge Requests
0
Merge Requests
0
Analytics
Analytics
Repository
Value Stream
Wiki
Wiki
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Commits
Issue Boards
Open sidebar
Kirill Smelkov
cpython
Commits
522ccef8
Commit
522ccef8
authored
May 20, 2019
by
Geoff Shannon
Committed by
Victor Stinner
May 20, 2019
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
bpo-22865: Expand on documentation for the pty.spawn function (GH-11980)
parent
45a24b85
Changes
3
Hide whitespace changes
Inline
Side-by-side
Showing
3 changed files
with
27 additions
and
4 deletions
+27
-4
Doc/library/pty.rst
Doc/library/pty.rst
+25
-4
Misc/ACKS
Misc/ACKS
+1
-0
Misc/NEWS.d/next/Documentation/2019-02-21-18-13-50.bpo-22865.6hg6J8.rst
...xt/Documentation/2019-02-21-18-13-50.bpo-22865.6hg6J8.rst
+1
-0
No files found.
Doc/library/pty.rst
View file @
522ccef8
...
...
@@ -43,11 +43,32 @@ The :mod:`pty` module defines the following functions:
Spawn a process, and connect its controlling terminal with the current
process's standard io. This is often used to baffle programs which insist on
reading from the controlling terminal.
reading from the controlling terminal. It is expected that the process
spawned behind the pty will eventually terminate, and when it does *spawn*
will return.
The functions *master_read* and *stdin_read* are passed a file descriptor
which they should read from, and they should always return a byte string. In
order to force spawn to return before the child process exits an
:exc:`OSError` should be thrown.
The default implementation for both functions will read and return up to 1024
bytes each time the function is called. The *master_read* callback is passed
the pseudoterminal’s master file descriptor to read output from the child
process, and *stdin_read* is passed file descriptor 0, to read from the
parent process's standard input.
Returning an empty byte string from either callback is interpreted as an
end-of-file (EOF) condition, and that callback will not be called after
that. If *stdin_read* signals EOF the controlling terminal can no longer
communicate with the parent process OR the child process. Unless the child
process will quit without any input, *spawn* will then loop forever. If
*master_read* signals EOF the same behavior results (on linux at least).
If both callbacks signal EOF then *spawn* will probably never return, unless
*select* throws an error on your platform when passed three empty lists. This
is a bug, documented in `issue 26228 <https://bugs.python.org/issue26228>`_.
The functions *master_read* and *stdin_read* should be functions which read from
a file descriptor. The defaults try to read 1024 bytes each time they are
called.
.. versionchanged:: 3.4
:func:`spawn` now returns the status value from :func:`os.waitpid`
...
...
Misc/ACKS
View file @
522ccef8
...
...
@@ -1859,3 +1859,4 @@ Zheao Li
Carsten Klein
Diego Rojas
Edison Abahurire
Geoff Shannon
Misc/NEWS.d/next/Documentation/2019-02-21-18-13-50.bpo-22865.6hg6J8.rst
0 → 100644
View file @
522ccef8
Add detail to the documentation on the `pty.spawn` function.
\ No newline at end of file
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment