*nix Documentation Project
·  Home
 +   man pages
·  Linux HOWTOs
·  FreeBSD Tips
·  *niX Forums

  man pages->Tru64 Unix man pages -> pty (7)              
Title
Content
Arch
Section
 

pty(7)

Contents


NAME    [Toc]    [Back]

       pty - Pseudo terminal driver

SYNOPSIS    [Toc]    [Back]

       pseudo-device pty [count] options RPTY

DESCRIPTION    [Toc]    [Back]

       The pty driver provides support for a device-pair termed a
       pseudo terminal.  A pseudo terminal is a pair of character
       devices,  a  master  device and a slave device.  The slave
       device provides an interface identical to  that  described
       in  the  tty(7) reference page. However, whereas all other
       devices which  provide  the  interface  described  in  the
       tty(7)  reference page have a hardware device behind them,
       the slave device has, instead, another process  manipulating
  it  through  the  master half of the pseudo terminal.
       That is, anything written on the master device is given to
       the  slave  device  as  input  and anything written on the
       slave device is presented as input on the master device.

       The Tru64 UNIX operating system supports  a  STREAMS-based
       and  clist-based implementation of the pty subsystem.  The
       default configuration uses  STREAMS-based  ptys.  STREAMSbased
 ptys use the options RPTY line in the kernel configuration
 file,  while  clist-based  ptys  use  the  pseudodevice,
 pty. By default, 32 pseudo-terminal special device
       files are created.

       Note that you cannot have both types of ptys configured at
       the same time.

       To  enhance  compatibility,  STREAMS-based ptys offers two
       master pseudo terminal drivers, the BSD compatible  master
       and  the  System V compatible master.  The BSD master is a
       non-STREAMS device which interfaces to  the  STREAMS-based
       slave  pty.  The System V master is a STREAMS-based device
       that also interfaces to the STREAMS-based slave pty.   The
       BSD   master   is   opened  through  the  cloning  device,
       /dev/ptmx_bsd, and through the master pty  special  files,
       /dev/ptyXX.   The  System  V master is opened only through
       the cloning device /dev/ptmx.  Currently  the  BSD  master
       cloning device is used by the libc routine openpty(3).

       You should allocate ptys by using the openpty(3) function,
       which hides the pty name space that  will  change  in  the
       next major operating system release.

   Increasing the Number of Pseudo Terminals    [Toc]    [Back]
       The  operating  system  can  make  only 3162 STREAMS-based
       ptys, but can support up to 8192.   To  create  additional
       ptys,  do  the  following: Increase the value of the nptys
       attribute for the pts subsystem by using either the dxkerneltuner
  application  or  the sysconfig-r*O command.  The
       value you choose should be the maximum number of ptys that
       you  want active on your system.  See sys_attrs_pts(5) for
       more information.  Increase the  value  of  the  following
       attributes  for the proc subsystem as follows: maxusers --
       4096 max-thread -- 3*maxusers max-task -- 3*maxusers  maxproc-per-user
 -- 3*maxusers

              Use   either   the   dxkerneltuner  application  or
              sysconfig -r command to make these changes.  Create
              and run (as root) the following script, make_ptys:

       #!/bin/sh  #  #  This  script  creates additional System V
       slave ptys in /dev/pts.  # It assumes that all  devices  <
       3161  have  been  created  # as part of the BSD/tty device
       creation.  # If these devices do NOT exist, modify  the  #
       'start' variable to the first device you want to # create.
       # start=3162 stop=8191 major=6 cd /dev/pts i=$start  while
       : do
           mknod $i c $major $i
           chmod 666 $i
           [ $i = $stop ] && {
               echo "done"
               break
           }
           i=`expr $i + 1` done exit 0

       To access the additional ptys, you must use the openpty(3)
       function or open  the  System  V  master  cloning  device,
       /dev/ptmx.

   Pseudo Terminal ioctl Calls    [Toc]    [Back]
       The  following ioctl calls apply only to pseudo terminals:
       Returns the dev_t of the master file descriptor.  ISPTM is
       valid  only on the master half of the pseudo terminal, and
       takes no arguments.  Stops output to a terminal (for example,
   like   entering  [Ctrl-S]).   Takes  no  parameter.
       Restarts output (stopped by TIOCSTOP or by  typing  [CtrlS]).
  Takes  no parameter.  Enable or disable packet mode.
       Packet mode is enabled  by  specifying  (by  reference)  a
       nonzero  parameter  and  disabled by specifying (by reference)
 a zero parameter.  When applied to the  master  side
       of a pseudo terminal, each subsequent read() from the terminal
 will return data written on the slave  part  of  the
       pseudo  terminal  preceded  by  a  zero byte (symbolically
       defined as TIOCPKT_DATA), 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: Whenever  the
       read  queue  for  the  terminal  is flushed.  Whenever the
       write queue for the terminal is flushed.  Whenever  output
       to  the  terminal is stopped by [Ctrl-S].  Whenever output
       to the terminal is restarted.  Whenever t_stopc is  [CtrlS]
  and t_startc is [Ctrl-Q].  Whenever the start and stop
       characters are not [Ctrl-S] and [Ctrl-Q].

              While this mode is in use, the presence of  control
              status  information to be read from the master side
              may be detected by a select() for exceptional  conditions.


              This  mode  is  used by the rlogin and rlogind commands
 to implement a remote-echoed, locally  [CtrlS/Ctrl-Q]
  flow-controlled remote login with proper
              back-flushing of output; it can be  used  by  other
              similar  programs.   Enable  or disable a mode that
              allows a small number of simple user ioctl commands
              to  be  passed through the pseudo-terminal, using a
              protocol similar to that of TIOCPKT. The  TIOCUCNTL
              and TIOCPKT modes are mutually exclusive. This mode
              is enabled from the master side of a pseudo  terminal
  by specifying (by reference) a nonzero parameter
 and disabled by  specifying  (by  reference)  a
              zero  parameter.   Each  subsequent read() from the
              master side will return data written on  the  slave
              part  of  the  pseudo  terminal  preceded by a zero
              byte, or a single byte reflecting  a  user  control
              operation on the slave side. A user control command
              consists of a special ioctl operation with no data;
              the  command  is  given as UIOCCMD(n), where n is a
              number in the range 1-255. The  operation  value  n
              will  be  received  as  a  single  byte on the next
              read() from the master side. The  ioctl  UIOCCMD(0)
              is  a no-op that may be used to probe for the existence
 of this facility. As with TIOCPKT mode,  command
 operations may be detected with a select() for
              exceptional conditions.  A mode for the master half
              of a pseudo terminal, independent of TIOCPKT.  This
              mode causes input to the pseudo terminal to be flow
              controlled  and not input edited (regardless of the
              terminal mode).  Each write to the control terminal
              produces  a record boundary for the process reading
              the terminal.  In normal usage, a write of data  is
              like  the  data  typed as a line on the terminal; a
              write of 0 (zero) bytes is like typing  an  End-ofFile
  character.   The  TIOCREMOTE mode can be used
              when doing remote line editing in a window manager,
              or  whenever  flow  controlled  input  is required.
              Allows the open of the corresponding slave to  succeed
  when  using the System V master. If UNLKPT is
              not used in conjunction with the  System  V  master
              the  open of the corresponding slave will fail with
              EPERM.  This ioctl takes no arguments.

FILES    [Toc]    [Back]

       Master pseudo terminals Slave pseudo  terminals  System  V
       master cloning device BSD master cloning device SVR4 slave
       pseudo terminal

SEE ALSO    [Toc]    [Back]

      
      
       openpty(3)

       System Administration



                                                           pty(7)
[ Back ]
 Similar pages
Name OS Title
pts HP-UX STREAMS slave pty (pseudo-terminal) driver
ptm HP-UX STREAMS master pty (pseudo-terminal) driver
telm HP-UX STREAMS Telnet slave (pseudo-terminal) driver, STREAMS Telnet master driver (used by telnetd only), respective
tels HP-UX STREAMS Telnet slave (pseudo-terminal) driver, STREAMS Telnet master driver (used by telnetd only), respective
unlockpt FreeBSD pseudo-terminal access functions
ptsname FreeBSD pseudo-terminal access functions
posix_openpt FreeBSD pseudo-terminal access functions
grantpt FreeBSD pseudo-terminal access functions
ptsname IRIX get name of the slave pseudo-terminal device
pty FreeBSD auxiliary functions to obtain a pseudo-terminal
Copyright © 2004-2005 DeniX Solutions SRL
newsletter delivery service