add files
This commit is contained in:
105
python-3.7.4-docs-html/_sources/library/termios.rst.txt
Normal file
105
python-3.7.4-docs-html/_sources/library/termios.rst.txt
Normal file
@@ -0,0 +1,105 @@
|
||||
:mod:`termios` --- POSIX style tty control
|
||||
==========================================
|
||||
|
||||
.. module:: termios
|
||||
:platform: Unix
|
||||
:synopsis: POSIX style tty control.
|
||||
|
||||
.. index::
|
||||
pair: POSIX; I/O control
|
||||
pair: tty; I/O control
|
||||
|
||||
--------------
|
||||
|
||||
This module provides an interface to the POSIX calls for tty I/O control. For a
|
||||
complete description of these calls, see :manpage:`termios(3)` Unix manual
|
||||
page. It is only available for those Unix versions that support POSIX
|
||||
*termios* style tty I/O control configured during installation.
|
||||
|
||||
All functions in this module take a file descriptor *fd* as their first
|
||||
argument. This can be an integer file descriptor, such as returned by
|
||||
``sys.stdin.fileno()``, or a :term:`file object`, such as ``sys.stdin`` itself.
|
||||
|
||||
This module also defines all the constants needed to work with the functions
|
||||
provided here; these have the same name as their counterparts in C. Please
|
||||
refer to your system documentation for more information on using these terminal
|
||||
control interfaces.
|
||||
|
||||
The module defines the following functions:
|
||||
|
||||
|
||||
.. function:: tcgetattr(fd)
|
||||
|
||||
Return a list containing the tty attributes for file descriptor *fd*, as
|
||||
follows: ``[iflag, oflag, cflag, lflag, ispeed, ospeed, cc]`` where *cc* is a
|
||||
list of the tty special characters (each a string of length 1, except the
|
||||
items with indices :const:`VMIN` and :const:`VTIME`, which are integers when
|
||||
these fields are defined). The interpretation of the flags and the speeds as
|
||||
well as the indexing in the *cc* array must be done using the symbolic
|
||||
constants defined in the :mod:`termios` module.
|
||||
|
||||
|
||||
.. function:: tcsetattr(fd, when, attributes)
|
||||
|
||||
Set the tty attributes for file descriptor *fd* from the *attributes*, which is
|
||||
a list like the one returned by :func:`tcgetattr`. The *when* argument
|
||||
determines when the attributes are changed: :const:`TCSANOW` to change
|
||||
immediately, :const:`TCSADRAIN` to change after transmitting all queued output,
|
||||
or :const:`TCSAFLUSH` to change after transmitting all queued output and
|
||||
discarding all queued input.
|
||||
|
||||
|
||||
.. function:: tcsendbreak(fd, duration)
|
||||
|
||||
Send a break on file descriptor *fd*. A zero *duration* sends a break for
|
||||
0.25--0.5 seconds; a nonzero *duration* has a system dependent meaning.
|
||||
|
||||
|
||||
.. function:: tcdrain(fd)
|
||||
|
||||
Wait until all output written to file descriptor *fd* has been transmitted.
|
||||
|
||||
|
||||
.. function:: tcflush(fd, queue)
|
||||
|
||||
Discard queued data on file descriptor *fd*. The *queue* selector specifies
|
||||
which queue: :const:`TCIFLUSH` for the input queue, :const:`TCOFLUSH` for the
|
||||
output queue, or :const:`TCIOFLUSH` for both queues.
|
||||
|
||||
|
||||
.. function:: tcflow(fd, action)
|
||||
|
||||
Suspend or resume input or output on file descriptor *fd*. The *action*
|
||||
argument can be :const:`TCOOFF` to suspend output, :const:`TCOON` to restart
|
||||
output, :const:`TCIOFF` to suspend input, or :const:`TCION` to restart input.
|
||||
|
||||
|
||||
.. seealso::
|
||||
|
||||
Module :mod:`tty`
|
||||
Convenience functions for common terminal control operations.
|
||||
|
||||
|
||||
.. _termios-example:
|
||||
|
||||
Example
|
||||
-------
|
||||
|
||||
Here's a function that prompts for a password with echoing turned off. Note the
|
||||
technique using a separate :func:`tcgetattr` call and a :keyword:`try` ...
|
||||
:keyword:`finally` statement to ensure that the old tty attributes are restored
|
||||
exactly no matter what happens::
|
||||
|
||||
def getpass(prompt="Password: "):
|
||||
import termios, sys
|
||||
fd = sys.stdin.fileno()
|
||||
old = termios.tcgetattr(fd)
|
||||
new = termios.tcgetattr(fd)
|
||||
new[3] = new[3] & ~termios.ECHO # lflags
|
||||
try:
|
||||
termios.tcsetattr(fd, termios.TCSADRAIN, new)
|
||||
passwd = input(prompt)
|
||||
finally:
|
||||
termios.tcsetattr(fd, termios.TCSADRAIN, old)
|
||||
return passwd
|
||||
|
Reference in New Issue
Block a user