| \section{\module{pty} --- |
| Pseudo-terminal utilities} |
| \declaremodule{standard}{pty} |
| \platform{IRIX, Linux} |
| \modulesynopsis{Pseudo-Terminal Handling for SGI and Linux.} |
| \moduleauthor{Steen Lumholt}{} |
| \sectionauthor{Moshe Zadka}{moshez@zadka.site.co.il} |
| |
| |
| The \module{pty} module defines operations for handling the |
| pseudo-terminal concept: starting another process and being able to |
| write to and read from its controlling terminal programmatically. |
| |
| Because pseudo-terminal handling is highly platform dependant, there |
| is code to do it only for SGI and Linux. (The Linux code is supposed |
| to work on other platforms, but hasn't been tested yet.) |
| |
| The \module{pty} module defines the following functions: |
| |
| \begin{funcdesc}{fork}{} |
| Fork. Connect the child's controlling terminal to a pseudo-terminal. |
| Return value is \code{(\var{pid}, \var{fd})}. Note that the child |
| gets \var{pid} 0, and the \var{fd} is \emph{invalid}. The parent's |
| return value is the \var{pid} of the child, and \var{fd} is a file |
| descriptor connected to the child's controlling terminal (and also |
| to the child's standard input and output. |
| \end{funcdesc} |
| |
| \begin{funcdesc}{openpty}{} |
| Open a new pseudo-terminal pair, using \function{os.openpty()} if |
| possible, or emulation code for SGI and generic \UNIX{} systems. |
| Return a pair of file descriptors \code{(\var{master}, \var{slave})}, |
| for the master and the slave end, respectively. |
| \end{funcdesc} |
| |
| \begin{funcdesc}{spawn}{argv\optional{, master_read\optional{, stdin_read}}} |
| 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. |
| |
| The functions \var{master_read} and \var{stdin_read} should be |
| functions which read from a file-descriptor. The defaults try to read |
| 1024 bytes each time they are called. |
| \end{funcdesc} |