1999-06-29 20:11:22 +02:00
|
|
|
\section{\module{pty} ---
|
|
|
|
Pseudo-terminal utilities}
|
|
|
|
\declaremodule{standard}{pty}
|
2000-04-03 22:13:55 +02:00
|
|
|
\platform{IRIX, Linux}
|
1999-06-29 20:11:22 +02:00
|
|
|
\modulesynopsis{Pseudo-Terminal Handling for SGI and Linux.}
|
|
|
|
\moduleauthor{Steen Lumholt}{}
|
|
|
|
\sectionauthor{Moshe Zadka}{mzadka@geocities.com}
|
|
|
|
|
|
|
|
|
|
|
|
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}
|
|
|
|
|
2000-06-28 19:27:48 +02:00
|
|
|
\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}
|
|
|
|
|
1999-06-29 20:11:22 +02:00
|
|
|
\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}
|