diff options
author | cinap_lenrek <cinap_lenrek@localhost> | 2011-05-03 11:25:13 +0000 |
---|---|---|
committer | cinap_lenrek <cinap_lenrek@localhost> | 2011-05-03 11:25:13 +0000 |
commit | 458120dd40db6b4df55a4e96b650e16798ef06a0 (patch) | |
tree | 8f82685be24fef97e715c6f5ca4c68d34d5074ee /sys/src/cmd/python/Doc/lib/libtermios.tex | |
parent | 3a742c699f6806c1145aea5149bf15de15a0afd7 (diff) |
add hg and python
Diffstat (limited to 'sys/src/cmd/python/Doc/lib/libtermios.tex')
-rw-r--r-- | sys/src/cmd/python/Doc/lib/libtermios.tex | 106 |
1 files changed, 106 insertions, 0 deletions
diff --git a/sys/src/cmd/python/Doc/lib/libtermios.tex b/sys/src/cmd/python/Doc/lib/libtermios.tex new file mode 100644 index 000000000..ef99cf9ed --- /dev/null +++ b/sys/src/cmd/python/Doc/lib/libtermios.tex @@ -0,0 +1,106 @@ +\section{\module{termios} --- + \POSIX{} style tty control} + +\declaremodule{builtin}{termios} + \platform{Unix} +\modulesynopsis{\POSIX\ style tty control.} + +\indexii{\POSIX}{I/O control} +\indexii{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 the \POSIX{} or +\UNIX{} manual pages. It is only available for those \UNIX{} versions +that support \POSIX{} \emph{termios} style tty I/O control (and then +only if configured at installation time). + +All functions in this module take a file descriptor \var{fd} as their +first argument. This can be an integer file descriptor, such as +returned by \code{sys.stdin.fileno()}, or a file object, such as +\code{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: + +\begin{funcdesc}{tcgetattr}{fd} +Return a list containing the tty attributes for file descriptor +\var{fd}, as follows: \code{[}\var{iflag}, \var{oflag}, \var{cflag}, +\var{lflag}, \var{ispeed}, \var{ospeed}, \var{cc}\code{]} where +\var{cc} is a list of the tty special characters (each a string of +length 1, except the items with indices \constant{VMIN} and +\constant{VTIME}, which are integers when these fields are +defined). The interpretation of the flags and the speeds as well as +the indexing in the \var{cc} array must be done using the symbolic +constants defined in the \module{termios} +module. +\end{funcdesc} + +\begin{funcdesc}{tcsetattr}{fd, when, attributes} +Set the tty attributes for file descriptor \var{fd} from the +\var{attributes}, which is a list like the one returned by +\function{tcgetattr()}. The \var{when} argument determines when the +attributes are changed: \constant{TCSANOW} to change immediately, +\constant{TCSADRAIN} to change after transmitting all queued output, +or \constant{TCSAFLUSH} to change after transmitting all queued +output and discarding all queued input. +\end{funcdesc} + +\begin{funcdesc}{tcsendbreak}{fd, duration} +Send a break on file descriptor \var{fd}. A zero \var{duration} sends +a break for 0.25--0.5 seconds; a nonzero \var{duration} has a system +dependent meaning. +\end{funcdesc} + +\begin{funcdesc}{tcdrain}{fd} +Wait until all output written to file descriptor \var{fd} has been +transmitted. +\end{funcdesc} + +\begin{funcdesc}{tcflush}{fd, queue} +Discard queued data on file descriptor \var{fd}. The \var{queue} +selector specifies which queue: \constant{TCIFLUSH} for the input +queue, \constant{TCOFLUSH} for the output queue, or +\constant{TCIOFLUSH} for both queues. +\end{funcdesc} + +\begin{funcdesc}{tcflow}{fd, action} +Suspend or resume input or output on file descriptor \var{fd}. The +\var{action} argument can be \constant{TCOOFF} to suspend output, +\constant{TCOON} to restart output, \constant{TCIOFF} to suspend +input, or \constant{TCION} to restart input. +\end{funcdesc} + + +\begin{seealso} + \seemodule{tty}{Convenience functions for common terminal control + operations.} +\end{seealso} + + +\subsection{Example} +\nodename{termios Example} + +Here's a function that prompts for a password with echoing turned +off. Note the technique using a separate \function{tcgetattr()} call +and a \keyword{try} ... \keyword{finally} statement to ensure that the +old tty attributes are restored exactly no matter what happens: + +\begin{verbatim} +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 = raw_input(prompt) + finally: + termios.tcsetattr(fd, termios.TCSADRAIN, old) + return passwd +\end{verbatim} |