pty man page on SunOS

Man page or keyword search:  
man Server   20652 pages
apropos Keyword Search (all sections)
Output format
SunOS logo
[printable version]

pty(7D)				    Devices			       pty(7D)

NAME
       pty - pseudo-terminal driver

DESCRIPTION
       The  pty	 driver	 provides  support  for a pair of devices collectively
       known as a pseudo-terminal. The two devices comprising a	 pseudo-termi‐
       nal  are	 known	as a controller and a slave.  The slave device distin‐
       guishes between the B0 baud rate and other baud rates specified in  the
       c_cflag	word  of  the  termios	structure, and the CLOCAL flag in that
       word. It does not support any of the other  termio(7I)  device  control
       functions  specified by flags in the c_cflag word of the termios struc‐
       ture and by the IGNBRK,	 IGNPAR,   PARMRK,   or	 INPCK	flags  in  the
       c_iflag word of the termios structure, as these functions apply only to
       asynchronous serial ports.  All other termio(7I) functions must be per‐
       formed  by  STREAMS modules pushed atop the driver; when a slave device
       is opened, the ldterm(7M) and ttcompat(7M) STREAMS modules are automat‐
       ically  pushed  on top of the stream, providing the standard termio(7I)
       interface.

       Instead of having a hardware interface  and  associated	hardware  that
       supports	 the  terminal	functions,  the	 functions  are implemented by
       another process manipulating the controller device of the pseudo-termi‐
       nal.

       The controller and the slave devices of the pseudo-terminal are tightly
       connected. Any data written on the controller device is	given  to  the
       slave  device  as input, as though it had been received from a hardware
       interface.  Any data written on the slave terminal can be read from the
       controller device (rather than being transmitted from a UAR).

       By default, 48 pseudo-terminal pairs are configured as follows:

       /dev/pty[p-r][0-9a-f] controller devices
       /dev/tty[p-r][0-9a-f] slave devices

IOCTLS
       The  standard  set  of termio ioctls are supported by the slave device.
       None of the bits in the c_cflag word have any effect on the pseudo-ter‐
       minal, except that if the baud rate is set to B0, it will appear to the
       process on the controller device as if the last process	on  the	 slave
       device  had  closed the line; thus, setting the baud rate to B0 has the
       effect of ``hanging up'' the pseudo-terminal, just as it has the effect
       of ``hanging up'' a real terminal.

       There  is  no notion of ``parity'' on a pseudo-terminal, so none of the
       flags in the c_iflag word that control the processing of parity	errors
       have  any effect. Similarly, there is no notion of a ``break'', so none
       of the flags that control the processing of breaks,  and	 none  of  the
       ioctls that generate breaks, have any effect.

       Input  flow control is automatically performed; a process that attempts
       to write to the controller device will be blocked if  too  much	uncon‐
       sumed  data  is	buffered  on the slave device.	The input flow control
       provided by the IXOFF flag in the c_iflag word is not supported.

       The delays specified in the c_oflag word are not supported.

       As there are no modems involved in a pseudo-terminal, the  ioctls  that
       return or alter the state of modem control lines are silently ignored.

       A  few special ioctls are provided on the controller devices of pseudo-
       terminals to provide the functionality needed by applications  programs
       to emulate real hardware interfaces:

       TIOCSTOP	       The  argument is ignored. Output to the pseudo-terminal
		       is suspended, as if a STOP character had been typed.

       TIOCSTART       The argument is ignored. Output to the  pseudo-terminal
		       is restarted, as if a START character had been typed.

       TIOCPKT	       The  argument  is  a pointer to an int. If the value of
		       the int is non-zero, packet mode	 is  enabled;  if  the
		       value  of  the  int  is	zero, packet mode is disabled.
		       When a pseudo-terminal is in packet mode,  each	subse‐
		       quent  read(2)  from  the controller device will return
		       data written on the slave device	 preceded  by  a  zero
		       byte (symbolically defined as TIOCPKT_DATA),  or a sin‐
		       gle byte reflecting control status information.	In the
		       latter  case,  the  byte	 is an inclusive-or of zero or
		       more of the bits:

		       TIOCPKT_FLUSHREAD       whenever the read queue for the
					       terminal is flushed.

		       TIOCPKT_FLUSHWRITE      whenever	 the  write  queue for
					       the terminal is flushed.

		       TIOCPKT_STOP	       whenever output to the terminal
					       is stopped using ^S.

		       TIOCPKT_START	       whenever output to the terminal
					       is restarted.

		       TIOCPKT_DOSTOP	       whenever XON/XOFF flow  control
					       is  enabled  after  being  dis‐
					       abled;	it    is    considered
					       ``enabled''  when the IXON flag
					       in the c_iflag word is set, the
					       VSTOP  member of the c_cc array
					       is ^S and the VSTART member  of
					       the c_cc array is ^Q.

		       TIOCPKT_NOSTOP	       whenever	 XON/XOFF flow control
					       is   disabled	after	 being
					       enabled.

       TIOCREMOTE      The  argument  is  a pointer to an int. If the value of
		       the int is non-zero, remote mode	 is  enabled;  if  the
		       value of the int is zero, remote mode is disabled. This
		       mode can be enabled or disabled independently of packet
		       mode.  When  a pseudo-terminal is in remote mode, input
		       to the slave device of the pseudo-terminal is flow con‐
		       trolled	and  not  input edited (regardless of the mode
		       the slave side of the pseudo-terminal). Each  write  to
		       the  controller	device	produces a record boundary for
		       the process reading the slave device.  In normal usage,
		       a write of data is like the data typed as a line on the
		       terminal; a write of 0 bytes  is	 like  typing  an  EOF
		       character.   Note: this means that a process writing to
		       a pseudo-terminal controller in remote mode  must  keep
		       track  of line boundaries, and write only one line at a
		       time to the controller.	If, for example,  it  were  to
		       buffer  up several NEWLINE characters and write them to
		       the controller with one write(), it would appear	 to  a
		       process reading from the slave as if a single line con‐
		       taining several NEWLINE characters had been  typed  (as
		       if,  for	 example, a user had typed the LNEXT character
		       before typing all but the last of those NEWLINE charac‐
		       ters).  Remote  mode can be used when doing remote line
		       editing in a window  manager,  or  whenever  flow  con‐
		       trolled input is required.

EXAMPLES
       #include <fcntl.h>
       #include <sys/termios.h>

       int fdm fds;
       fdm = open("/dev/ptyp0, O_RDWR);	 /* open master */
       fds = open("/dev/ttyp0, O_RDWR);	 /* open slave */

FILES
       /dev/pty[p-z][0-9a-f]	       pseudo-terminal controller devices

       /dev/tty[p-z][0-9a-f]	       pseudo-terminal slave devices

SEE ALSO
       rlogin(1), rlogind(1M), ldterm(7M), termio(7I), ttcompat(7M),

NOTES
       It  is  apparently not possible to send an EOT by writing zero bytes in
       TIOCREMOTE mode.

SunOS 5.10			  8 Aug 1994			       pty(7D)
[top]

List of man pages available for SunOS

Copyright (c) for man pages and the logo by the respective OS vendor.

For those who want to learn more, the polarhome community provides shell access and support.

[legal] [privacy] [GNU] [policy] [cookies] [netiquette] [sponsors] [FAQ]
Tweet
Polarhome, production since 1999.
Member of Polarhome portal.
Based on Fawad Halim's script.
....................................................................
Vote for polarhome
Free Shell Accounts :: the biggest list on the net