pty man page on DigitalUNIX

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

pty(7)									pty(7)

       pty - Pseudo terminal driver

       pseudo-device pty [count] options RPTY

       The  pty driver provides support for a device-pair termed a pseudo ter‐
       minal.  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. STREAMS-based ptys use the options  RPTY  line
       in  the	kernel	configuration  file,  while  clist-based  ptys use the
       pseudo-device, pty. By default, 32 pseudo-terminal special device files
       are created.

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

       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 mas‐
       ter 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

   Increasing the Number of Pseudo Terminals
       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 com‐
       mand.  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 informa‐
       tion.  Increase the value of the following attributes for the proc sub‐
       system  as  follows: maxusers -- 4096 max-thread -- 3*maxusers max-task
       -- 3*maxusers max-proc-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"
	   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
       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 [Ctrl-S]). Takes no
       parameter.  Enable or disable packet mode.  Packet mode is  enabled  by
       specifying  (by reference) a nonzero parameter and disabled by specify‐
       ing (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
       [Ctrl-S] and t_startc is [Ctrl-Q].  Whenever the start and stop charac‐
       ters are not [Ctrl-S] and [Ctrl-Q].

	      While this mode is in use, the presence of control status infor‐
	      mation  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	imple‐
	      ment  a  remote-echoed,  locally [Ctrl-S/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 opera‐
	      tion 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,  com‐
	      mand  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 pro‐
	      duces 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-of-File 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 corre‐
	      sponding 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.

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


       System Administration


List of man pages available for DigitalUNIX

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]
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