MyWebUniversity.com Home Page
 



OpenSolaris man pages main menu


Devices                                                   pty(7D)



NAME
     pty - pseudo-terminal driver

DESCRIPTION
     The pty driver provides support for a pair of  devices  col-
     lectively  known  as  a  pseudo-terminal.  The  two  devices
     comprising a pseudo-terminal are known as a controller and a
     slave.  The  slave  device distinguishes between the B0 baud
     rate and other baud rates specified in the ccflag  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 ccflag word of the ter-
     mios structure and by  the  IGNBRK,   IGNPAR,   PARMRK,   or
     INPCK flags in the ciflag word of the termios structure, as
     these functions apply only  to  asynchronous  serial  ports.
     All  other termio(7I) functions must be performed by STREAMS
     modules pushed atop the  driver;  when  a  slave  device  is
     opened,  the ldterm(7M) and ttcompat(7M) STREAMS modules are
     automatically 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  con-
     troller device of the pseudo-terminal.


     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 writ-
     ten 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  fol-
     lows:

       /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 ccflag word have any
     effect on the pseudo-terminal, except that if the baud  rate
     is  set  to  B0,  it  will appear to the process on the con-
     troller 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.



SunOS 5.11           Last change: 8 Aug 1994                    1






Devices                                                   pty(7D)



     There is no notion of ``parity'' on  a  pseudo-terminal,  so
     none  of the flags in the ciflag word that control the pro-
     cessing of parity errors have any effect.  Similarly,  there
     is  no notion of a ``break'', so none of the flags that con-
     trol 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 unconsumed data is buffered on the slave
     device.   The  input flow control provided by the IXOF flag
     in the ciflag word is not supported.


     The delays specified in the coflag 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  subsequent
                   read(2) from the controller device will return
                   data written on the slave device preceded by a
                   zero    byte    (symbolically    defined    as
                   TIOCPKTDATA),  or a  single  byte  reflecting
                   control  status  information.   In  the latter
                   case, the byte is an inclusive-or of  zero  or
                   more of the bits:

                   TIOCPKTFLUSHREAD     whenever the read  queue
                                         for   the   terminal  is



SunOS 5.11           Last change: 8 Aug 1994                    2






Devices                                                   pty(7D)



                                         flushed.


                   TIOCPKTFLUSHWRITE    whenever the write queue
                                         for   the   terminal  is
                                         flushed.


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


                   TIOCPKTSTART         whenever output  to  the
                                         terminal is restarted.


                   TIOCPKTDOSTOP        whenever  XON/XOF  flow
                                         control is enabled after
                                         being  disabled;  it  is
                                         considered   ``enabled''
                                         when the  IXON  flag  in
                                         the ciflag word is set,
                                         the VSTOP member of  the
                                         ccc array is ^S and the
                                         VSTART  member  of   the
                                         ccc array is ^Q.


                   TIOCPKTNOSTOP        whenever  XON/XOF  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  controlled  and not
                   input edited (regardless of the mode the slave
                   side  of  the  pseudo-terminal). Each write to
                   the controller device produces a record  boun-
                   dary 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



SunOS 5.11           Last change: 8 Aug 1994                    3






Devices                                                   pty(7D)



                   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
                   containing 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 characters). Remote mode
                   can  be used when doing remote line editing in
                   a window manager, or whenever flow  controlled
                   input is required.


EXAMPLES
       #include 
       #include 

       int fdm fds;
       fdm = open("/dev/ptyp0, ORDWR);  /* open master */
       fds = open("/dev/ttyp0, ORDWR);  /* 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.11           Last change: 8 Aug 1994                    4



OpenSolaris man pages main menu

Contact us      |       About us      |       Term of use      |       Copyright © 2000-2010 MyWebUniversity.com ™