pty(4d) 맨 페이지 - 윈디하나의 솔라나라

개요

섹션
맨 페이지 이름
검색(S)

pty(4d)

Device Drivers & /dev files                                            pty(4D)



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(4I)  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(4I) functions must be  per‐
       formed  by  STREAMS modules pushed atop the driver; when a slave device
       is opened, the ldterm(4M) and ttcompat(4M)  STREAMS modules  are  auto‐
       matically   pushed  on  top  of  the  stream,  providing  the  standard
       termio(4I) 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 pro‐
       vided 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 sus‐
           pended, 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 TIOCPKT_DATA),  or a single byte reflecting control sta‐
           tus 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 disabled;
               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 inde‐
           pendently 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 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 ter‐
           minal; 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  con‐
           troller 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  charac‐
           ters).  Remote mode can be used when doing remote line editing in a
           window manager, or whenever flow controlled 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), termio(4I), ldterm(4M), ttcompat(4M), rlogind(8),

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



Oracle Solaris 11.4               8 Aug 1994                           pty(4D)
맨 페이지 내용의 저작권은 맨 페이지 작성자에게 있습니다.
RSS ATOM XHTML 5 CSS3