| 
									
										
										
										
											1999-06-29 18:11:22 +00:00
										 |  |  | \section{\module{pty} --- | 
					
						
							|  |  |  |          Pseudo-terminal utilities} | 
					
						
							|  |  |  | \declaremodule{standard}{pty} | 
					
						
							| 
									
										
										
										
											2000-04-03 20:13:55 +00:00
										 |  |  |   \platform{IRIX, Linux} | 
					
						
							| 
									
										
										
										
											1999-06-29 18:11:22 +00:00
										 |  |  | \modulesynopsis{Pseudo-Terminal Handling for SGI and Linux.} | 
					
						
							|  |  |  | \moduleauthor{Steen Lumholt}{} | 
					
						
							| 
									
										
										
										
											2000-12-01 15:25:23 +00:00
										 |  |  | \sectionauthor{Moshe Zadka}{moshez@zadka.site.co.il} | 
					
						
							| 
									
										
										
										
											1999-06-29 18:11:22 +00:00
										 |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 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 | 
					
						
							| 
									
										
										
										
											2002-05-01 03:23:03 +00:00
										 |  |  | to the child's standard input and output). | 
					
						
							| 
									
										
										
										
											1999-06-29 18:11:22 +00:00
										 |  |  | \end{funcdesc} | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2000-06-28 17:27:48 +00: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 18:11:22 +00: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} |