unixdev.net


Switch to SpeakEasy.net DSL

The Modular Manual Browser

Home Page
Manual: (HP-UX-11.11)
Page:
Section:
Apropos / Subsearch:
optional field



 termio(7)							   termio(7)




 NAME
      termio, termios - general terminal interface

 DESCRIPTION
      All HP-UX asynchronous communications ports use the same general
      interface, regardless of what hardware is involved.  Network
      connections such as rlogin (see rlogin(1) use the pseudo-terminal
      interface (see pty(7).

      This discussion centers around the common features of this interface.

    Opening a Terminal File
      When a terminal file is opened, it normally causes the process to wait
      until a connection is established.  In practice, users' programs
      seldom open these files; they are opened by special programs such as
      getty (see getty(1M)) and become a user's standard input, standard
      output, and standard error files.

      If both the O_NDELAY and O_NONBLOCK flags (see open(2)) are clear, an
      open blocks until the type of modem connection requested (see
      modem(7)) is completed.  If either the O_NDELAY or O_NONBLOCK flag is
      set, an open succeeds and return immediately without waiting for the
      requested modem connection to complete.  The CLOCAL flag (see Control
      Modes) can also affect open(2).

    Process Groups
      A terminal can have a foreground process group associated with it.
      This foreground process group plays a special role in handling
      signal-generating input characters.

      Command interpreter processes can allocate the terminal to different
      jobs (process groups) by placing related processes in a single process
      group and associating this process group with the terminal.  A
      terminal's foreground process group can be set or examined by a
      process, assuming that the permission requirements are met (see
      tcsetpgrp(3C) or tcgetpgrp(3C)).	The terminal interface aids in this
      allocation by restricting access to the terminal by processes that are
      not in the foreground process group.

      A process group is considered orphaned when the parent of every member
      of the process group is either itself a member of the process group or
      is not a member of the group's session (see Sessions).

    Sessions
      A process that creates a session (see setsid(2) or setpgrp(2)) becomes
      a session leader.	 Every process group belongs to exactly one session.
      A process is considered to be a member of the session of which its
      process group is a member.  A newly created process joins the session
      of its parent.  A process can change its session membership (see
      setpgid(2) or setpgrp(2)).  Usually a session comprises all the
      processes (including children) created as a result of a single login.



 Hewlett-Packard Company	    - 1 -   HP-UX Release 11i: November 2000






 termio(7)							   termio(7)




    The Controlling Terminal
      A terminal can belong to a process as its controlling terminal.  Each
      process of a session that has a controlling terminal has the same
      controlling terminal.  A terminal can be the controlling terminal for
      at most one session.  The controlling terminal for a session is
      allocated by the session leader.	If a session leader has no
      controlling terminal and opens a terminal device file that is not
      already associated with a session without using the O_NOCTTY option
      (see open(2), the terminal becomes the controlling terminal of the
      session and the controlling terminal's foreground process group is set
      to the process group of the session leader.  While a controlling
      terminal is associated with a session, the session leader is said to
      be the controlling process of the controlling terminal.

      The controlling terminal is inherited by a child process during a
      fork() (see fork(2)).  A process relinquishes its controlling terminal
      if it creates a new session with setsid() or setpgrp() (see setsid(2)
      and setpgrp(2)), or when all file descriptors associated with the
      controlling terminal have been closed.

      When the controlling process terminates, the controlling terminal is
      disassociated from the current session, allowing it to be acquired by
      a new session leader.  A SIGHUP signal is sent to all processes in the
      foreground process group of the controlling terminal.  Subsequent
      access to the terminal by other processes in the earlier session can
      be denied (see Terminal Access Control) with attempts to access the
      terminal treated as if a modem disconnect had been sensed.

    Terminal Access Control
      Read operations are allowed (see Input Processing and Reading Data)
      from processes in the foreground process group of their controlling
      terminal.	 If a process is not in the foreground process group of its
      controlling terminal, the process and all member's of its process
      group are considered to be in a background process group of this
      controlling terminal.  All attempts by a process in a background
      process group to read from its controlling terminal will be denied.
      If denied and the reading process is ignoring or blocking the SIGTTIN
      signal, or the process (on systems that implement vfork separately
      from fork) has made a call to vfork(2) but has not yet made a call to
      exec(2), or the process group of the reading process is orphaned,
      read() returns -1 with errno set to EIO and no signal is sent.  In all
      other cases where the read is denied, the process group of the reading
      process will be sent a SIGTTIN signal.  The default action of the
      SIGTTIN signal is to stop the process to which it is sent.

      If the process is in the foreground process group of its controlling
      terminal, write operations are allowed (see Writing Data and Output
      Processing).  Attempts by a process in a background process group to
      write to its controlling terminal are denied if TOSTOP (see Local
      Modes) is set, the process is not ignoring and not blocking the
      SIGTTOU signal, and the process (on systems that implement vfork



 Hewlett-Packard Company	    - 2 -   HP-UX Release 11i: November 2000






 termio(7)							   termio(7)




      separately from fork) has not made a call to vfork(2) without making a
      subsequent call to exec(2).  If the write is denied and the background
      process group is orphaned, the write() returns -1 with errno set to
      EIO.  If the write is denied and the background process group is not
      orphaned, the SIGTTOU signal is sent to the process group of the
      writing process.	The default action of the SIGTTOU signal is to stop
      the process to which it is sent.

      Certain calls that set terminal parameters are treated in the same
      fashion as write, except that TOSTOP is ignored; that is, the effect
      is identical to that of terminal writes when TOSTOP is set.

    Input Processing and Reading Data
      A terminal device associated with a terminal device file can operate
      in full-duplex mode, so that data can arrive, even while data output
      is occurring.  Each terminal device file has an input queue associated
      with it into which incoming data is stored by the system before being
      read by a process.  The system imposes a limit, MAX_INPUT, on the
      number of characters that can be stored in the input queue.  This
      limit is dependent on the particular implementation, but is at least
      256.  When the input limit is reached, all saved characters are
      discarded without notice.

      All input is processed either in canonical mode or non-canonical mode
      (see Canonical Mode Input Processing and Non-Canonical Mode Input
      Processing).  Additionally, input characters are processed according
      to the c_iflag (see Input Modes) and c_lflag (see Local Modes) fields.
      For example, such processing can include echoing, which in general
      means transmitting input characters immediately back to the terminal
      when they are received from the terminal.	 This is useful for
      terminals that operate in full-duplex mode.

      The manner in which data is provided to a process reading from a
      terminal device file depends on whether the terminal device file is in
      canonical or non-canonical mode.

      Another dependency is whether the O_NONBLOCK or O_NDELAY flag is set
      by either open(2) or fcntl(2).  If the O_NONBLOCK and O_NDELAY flags
      are both clear, the read request is blocked until data is available or
      a signal is received.  If either the O_NONBLOCK or O_NDELAY flag is
      set, the read request completes without blocking in one of three ways:

	   +  If there is enough data available to satisfy the entire
	      request, read() completes successfully, having read all of the
	      data requested, and returns the number of characters read.

	   +  If there is not enough data available to satisfy the entire
	      request, read() completes successfully, having read as much
	      data as possible, and returns the number of characters read.





 Hewlett-Packard Company	    - 3 -   HP-UX Release 11i: November 2000






 termio(7)							   termio(7)




	   +  If there is no data available, read() returns -1, with errno
	      set to EAGAIN when the O_NONBLOCK flag is set.  Otherwise,
	      (flag O_NONBLOCK is clear and O_NDELAY is set) read()
	      completes successfully, having read no data, and returns a
	      count of 0.

      The availability of data depends upon whether the input processing
      mode is canonical or non-canonical.  The following sections, Canonical
      Mode Input Processing and Non-Canonical Mode Input Processing,
      describe each of these input processing modes.

      Canonical Mode Input Processing (Erase and Kill Processing)
      In canonical mode input processing, terminal input is processed in
      units of lines, where a line is delimited by a new-line (NL)
      character, an end-of-file (EOF) character, or an end-of-line character
      (EOL) or (EOL2).	See Special Characters for more information on NL,
      EOF, EOL, and EOL2.  This means that a read request does not return
      until an entire line has been typed or a signal has been received.
      Also, no matter how many characters are requested in the read call, at
      most one line will be returned.  It is not, however, necessary to read
      a whole line at once; any number of characters can be requested in a
      read, even one, without losing information.

      MAX_CANON is the limit on the number of characters in a line.  This
      limit varies with each particular implementation, but is at least 256.

      When the MAX_CANON limit is reached, all characters in the current
      undelimited line are discarded without notice.

      Erase and kill processing occur when any of three special characters,
      the ERASE, WERASE, or KILL characters (see Special Characters), is
      received.	 This processing affects data in the input queue that has
      not yet been delimited by a NL, EOF, EOL, or EOL2 character.  This
      undelimited data makes up the current line.  The ERASE character
      deletes the last character in the current line, if one exists.  The
      WERASE character deletes the last word in the current line, if one
      exists.  A word is defined as a series of non-blank characters (tabs
      are equivalent to blanks).  The KILL character deletes all data in the
      current line, if any, and optionally outputs a new-line (NL)
      character.  These characters operate on a key-stroke basis,
      independent of any backspacing or tabbing that may have preceded them.
      ERASE, WERASE, and KILL characters have no effect if the current line
      is empty.	 ERASE, WERASE, and KILL characters are not placed in the
      input queue.

      Non-Canonical Mode Input Processing (MIN/TIME Interaction)
      In non-canonical mode input processing, input characters are not
      assembled into lines, and erase and kill processing does not occur.
      The values of the MIN and TIME members of the c_cc array (see termios
      Structure) are used to determine how to process the characters
      received.	 MIN represents the minimum number of characters that should



 Hewlett-Packard Company	    - 4 -   HP-UX Release 11i: November 2000






 termio(7)							   termio(7)




      be received before read() successfully returns.  TIME is a timer of
      0.10 second granularity that is used to timeout bursty and short term
      data transmissions.  The four possible cases for MIN and TIME and
      their interactions are described below.

      Case A: MIN > 0, TIME > 0

      In this case, TIME serves as an inter-character timer and is activated
      after the first character is received.  Since it is an inter-character
      timer, it is reset after each character is received.  The interaction
      between MIN and TIME is as follows:

	   +  As soon as one character is received, the inter-character
	      timer is started.

	   +  If MIN characters are received before the inter-character
	      timer expires (remember that the timer is reset upon receipt
	      of each character), the read is satisfied.  If the timer
	      expires before MIN characters are received, the characters
	      received to that point are returned to the user.

	   +  Note that if TIME expires, at least one character will be
	      returned because the timer would not have been enabled unless
	      a character was received.	 In this case ( MIN > 0, TIME > 0 )
	      the read blocks until the MIN and TIME mechanisms are
	      activated by the receipt of the first character, or a signal
	      is received.

      Case B: MIN > 0, TIME = 0

      In this case, since the value of TIME is zero, the timer plays no role
      and only MIN is significant.  A pending read is not satisfied until
      MIN characters are received after any previous read completes (that
      is, the pending read blocks until MIN characters are received), or a
      signal is received.  A program that uses this case to handle record-
      based terminal I/O can block indefinitely in the read operation.

      Case C: MIN = 0, TIME > 0

      In this case, since the value of MIN is zero, TIME no longer
      represents an inter-character timer.  It now serves as a read timer
      that is activated as soon as the read() function is processed.  A read
      is satisfied as soon as a single character is received or the read
      timer expires.  If the timer expires, no character is returned.  If
      the timer does not expire, the only way the read can be satisfied is
      by a character being received.  A read cannot block indefinitely
      waiting for a character because if no character is received within
      TIME x 0.10 seconds after the read is initiated, read() returns a
      value of zero, having read no data.





 Hewlett-Packard Company	    - 5 -   HP-UX Release 11i: November 2000






 termio(7)							   termio(7)




      Case D: MIN = 0, TIME = 0

      The number of characters requested or the number of characters
      currently available, whichever is less, is returned without waiting
      for more characters to be input.	If no characters are available,
      read() returns a value of zero, having read no data.

      Some points to note about MIN and TIME:

	   1.	In the above explanations, the interactions of MIN and TIME
		are not symmetric. For example, when MIN > 0 and TIME = 0,
		TIME has no effect.  However, in the opposite case where MIN
		= 0 and TIME > 0, both MIN and TIME play a role in that MIN
		is satisfied with the receipt of a single character.

	   2.	Also note that in case A ( MIN > 0, TIME > 0 ), TIME
		represents an inter-character timer while in case C ( MIN =
		0, TIME > 0 ), TIME represents a read timer.

      These two points highlight the dual purpose of the MIN/TIME feature.
      Cases A and B (where MIN > 0 ) exist to handle burst mode activity
      (such as file transfer programs) where a program would like to process
      at least MIN characters at a time.  In case A, the inter-character
      timer is activated by a user as a safety measure while in case B it is
      turned off.

      Cases C and D exist to handle single character timed transfers.  These
      cases are readily adaptable to screen-based applications that need to
      know if a character is present in the input queue before refreshing
      the screen.  In case C the read is timed, while in case D it is not.

      Another important note is that MIN is always just a minimum.  It does
      not denote a record length.  For example, if a program initiates a
      read of 20 characters when MIN is 10 and 25 characters are present, 20
      characters will be returned to the user.	Had the program requested
      all characters, all 25 characters would be returned to the user.

      Furthermore, if TIME is greater than zero and MIN is greater than
      MAX_INPUT, the read will never terminate as a result of MIN characters
      being received because all the saved characters are discarded without
      notice when MAX_INPUT is exceeded.  If TIME is zero and MIN is greater
      than MAX_INPUT, the read will never terminate unless a signal is
      received.

    Special Characters
      Certain characters have special functions on input, output, or both.
      Unless specifically denied, each special character can be changed or
      disabled.	 To disable a character, set its value to _POSIX_VDISABLE
      (see unistd(5)).	These special functions and their default character
      values are:




 Hewlett-Packard Company	    - 6 -   HP-UX Release 11i: November 2000






 termio(7)							   termio(7)




	 INTR		(Rubout or ASCII DEL) special character on input and
			is recognized if ISIG (see Local Modes) is enabled.
			Generates a SIGINT signal which is sent to all
			processes in the foreground process group for which
			the terminal is the controlling terminal.  Normally,
			each such process is forced to terminate, but
			arrangements can be made to either ignore or hold
			the signal, or to receive a trap to an agreed-upon
			location; see signal(2) and signal(5).	If ISIG is
			set, the INTR character is discarded when processed.
			If ISIG is clear, the INTR character is processed as
			a normal data character, and no signal is sent.

	 QUIT		(Ctrl-| or ASCII FS) special character on input.
			Recognized if ISIG (see Local Modes) is set.  The
			treatment of this character is identical to that of
			the INTR character except that a SIGQUIT signal is
			generated and the processes that receive this signal
			are not only terminated, but a core image file
			(called core) is created in the current working
			directory if the implementation supports core files.

	 SWTCH		(ASCII NUL) special character on input and is only
			used by the shell layers facility shl(1).  The shell
			layers facility is not part of the general terminal
			interface.  No special functions are performed by
			the general terminal interface when SWTCH characters
			are encountered.

	 ERASE		(#) special character on input and is recognized if
			ICANON (see Local Modes) is enabled.  Erases the
			preceding character.  Does not erase beyond the
			start of a line, as delimited by a NL, EOF, EOL, or
			EOL2 character.	 If ICANON is enabled, the ERASE
			character is discarded when processed.	If ICANON is
			not enabled, the ERASE character is treated as a
			normal data character.

	 WERASE		(disabled) special character on input and is
			recognized if ICANON (see Local Modes) is enabled.
			Erases the preceding word.  Does not erase beyond
			the start of a line, as delimited by a NL, EOF, EOL,
			or EOL2 character.  If ICANON is enabled, the WERASE
			character is discarded when processed.	If ICANON is
			not enabled, the WERASE character is treated as a
			normal data character.

	 KILL		(@) special character on input and is recognized if
			ICANON is enabled.  KILL deletes the entire line, as
			delimited by a NL, EOF, EOL, or EOL2 character.	 If
			ICANON is enabled, the KILL character is discarded



 Hewlett-Packard Company	    - 7 -   HP-UX Release 11i: November 2000






 termio(7)							   termio(7)




			when processed.	 If ICANON is not enabled, the KILL
			character is treated as a normal data character.

	 EOF		(Control-D or ASCII EOT) special character on input
			and is recognized if ICANON is enabled.	 EOF can be
			used to generate an end-of-file from a terminal.
			When received, all the characters waiting to be read
			are immediately passed to the program without
			waiting for a new-line, and the EOF is discarded.
			Thus, if there are no characters waiting, (that is,
			the EOF occurred at the beginning of a line) a
			character count of zero is returned from read(),
			representing an end-of-file indication.	 If ICANON
			is enabled, the EOF character is discarded when
			processed.  If ICANON is not enabled, the EOF
			character is treated as a normal data character.

	 NL		(ASCII LF) special character on input and is
			recognized if ICANON flag is enabled.  It is the
			line delimiter (\n).  If ICANON is not enabled, the
			NL character is treated as a normal data character.

	 EOL		(ASCII NUL) special character on input and is
			recognized if ICANON is enabled.  EOL is an
			additional line delimiter similar to NL.  It is not
			normally used.	If ICANON is not enabled, the EOL
			character is treated as a normal data character.

	 EOL2		(disabled) special character on input and is
			recognized if ICANON is enabled.  EOL2 is an
			additional line delimiter similar to EOL.  It is not
			normally used.	If ICANON is not enabled, the EOL2
			character is treated as a normal data character.

	 SUSP		(disabled) special character recognized on input.
			If ISIG is enabled, receipt of the SUSP character
			causes a SIGTSTP signal to be sent to all processes
			in the foreground process group for which the
			terminal is the controlling terminal, and the SUSP
			character is discarded when processed.	If ISIG is
			not enabled, the SUSP character is treated as a
			normal data character.	Command interpreter
			processes typically set SUSP to Control-Z.

	 DSUSP		(disabled) special character recognized on input.
			If ISIG is enabled, and a process in the foreground
			process group attempts to read the DSUSP character,
			a SIGTSTP signal is sent to all processes in the
			foreground process group for which the terminal is
			the controlling terminal, and the DSUSP character is
			then discarded.	 If ISIG is not enabled, the DSUSP



 Hewlett-Packard Company	    - 8 -   HP-UX Release 11i: November 2000






 termio(7)							   termio(7)




			character is treated as a normal data character.
			Note that DSUSP is similar to SUSP except that the
			signal is sent when a process in the foreground
			process group attempts to read the DSUSP character,
			rather than when it is typed.

	 STOP		(Control-S or ASCII DC3) special character on both
			input and output.  If IXON (output control) is
			enabled, processing of the STOP character
			temporarily suspends output to the terminal device.
			This is useful with CRT terminals to prevent output
			from disappearing before it can be read.  While
			output is suspended and IXON is enabled, STOP
			characters are ignored and not read.  If IXON is
			enabled, the STOP character is discarded when
			processed.  If IXON is not enabled, the STOP
			character is treated as a normal data character.  If
			IXOFF (input control) is enabled, the system sends a
			STOP character to the terminal device when the
			number of unread characters in the input queue is
			approaching a system specified limit.  This is an
			attempt to prevent this buffer from overflowing by
			telling the terminal device to stop sending data.

	 START		(Control-Q or ASCII DC1) special character on both
			input and output.  If IXON (output control) is
			enabled, processing of the START character resumes
			output that has been suspended.	 While output is not
			suspended and IXON is enabled, START characters are
			ignored and not read.  If IXON is enabled, the START
			character is discarded when processed.	If IXON is
			not enabled, the START character is treated as a
			normal data character.	If IXOFF (input control) is
			enabled, the system sends a START character to the
			terminal device when the input queue has drained to
			a certain system-defined level.	 This occurs when
			the input queue is no longer in danger of possibly
			overflowing.

	 CR		(ASCII CR) special character on input is recognized
			if ICANON is enabled.  When ICANON and ICRNL are
			enabled and IGNCR is not enabled, this character is
			translated into a NL, and has the same affect as the
			NL character.  If ICANON and IGNCR are enabled, the
			CR character is ignored.  If ICANON is enabled and
			both ICRNL and IGNCR are not enabled, the CR
			character is treated as a normal data character.

	 LNEXT		(disabled) special character recognized on input.
			Causes the special meaning of the next character to
			be ignored.  This works for all special characters



 Hewlett-Packard Company	    - 9 -   HP-UX Release 11i: November 2000






 termio(7)							   termio(7)




			specified above.  It allows characters to be input
			that would otherwise be interpreted by the system
			for a special function.

      The special characters are assigned their default character values
      when the terminal port is opened.	 The default values used are those
      specified by the System V Interface Definition, Third Edition (SVID3),
      except for the WERASE (Ctrl-W) and LNEXT (Ctrl-V) characters which are
      set to _POSIX_VDISABLE to maintain binary compatibility with previous
      releases of HP-UX.  The default character values assigned when the
      port is opened can be changed for all ports on a system wide basis
      through the use of the stty command (see stty(1)).  The character
      values may also be changed for a specific port after it is opened
      using the stty command.  The NL and CR characters cannot be changed or
      disabled.	 The character values for the remaining special characters
      can be changed or disabled to suit individual tastes.

      If ICANON is set (see Local Modes), the ERASE, KILL, and EOF
      characters can be escaped by a preceding \ character, in which case no
      special function is performed.  These characters, and the remaining
      special characters, may also be escaped by preceding them with the
      LNEXT character (see LNEXT above).

      If two or more special characters have the same value, the function
      performed when the character is processed is undefined.

    Modem Disconnect
      If a modem disconnect is detected by the terminal interface for a
      controlling terminal, and if CLOCAL is clear in the c_cflag field for
      the terminal (see Control Modes), the SIGHUP signal is sent to the
      controlling process of the controlling terminal.	Unless other
      arrangements have been made, this causes the controlling process to
      terminate.  Any subsequent read from the terminal device returns with
      an end-of-file indication until the device is closed.  Thus, processes
      that read a terminal file and test for end-of-file can terminate
      appropriately after a disconnect.	 Any subsequent write() to the
      terminal device returns -1, with errno set to EIO, until the device is
      closed.

    Closing a Terminal Device File
      The last process to close a terminal device file causes any output not
      already sent to the device to be sent to the device even if output was
      suspended.  This last close always blocks (even if non-blocking I/O
      has been specified) until all output has been sent to the terminal
      device.  Any input that has been received but not read is discarded.

    Writing Data and Output Processing
      When characters are written, they are placed on the output queue.
      Characters on the output queue are transmitted to the terminal as soon
      as previously-written characters are sent.  These characters are
      processed according to the c_oflag field (see Output Modes).  Input



 Hewlett-Packard Company	   - 10 -   HP-UX Release 11i: November 2000






 termio(7)							   termio(7)




      characters are echoed by putting them in the output queue as they
      arrive.  If a process produces characters for output more rapidly than
      they can be sent, the process is suspended when its output queue
      exceeds some limit.  When the queue has drained down to some
      threshold, the process is resumed.

    termios Structure
      Routines that need to control certain terminal I/O characteristics can
      do so by using the termios structure as defined in the header file
      <termios.h>.  The structure is defined as follows:

	   #define NCCS	     16
	   struct  termios   {
		   tcflag_t  c_iflag;	  /* input modes */
		   tcflag_t  c_oflag;	  /* output modes */
		   tcflag_t  c_cflag;	  /* control modes */
		   tcflag_t  c_lflag;	  /* local modes */
		   tcflag_t  c_reserved;  /* reserved for future use */
		   cc_t	     c_cc[NCCS];  /* control chars */
	   };

      The special characters are defined by the array c_cc.  The relative
      positions and default values for each special character function are
      as follows:

	   INTR	    VINTR     DEL
	   QUIT	    VQUIT     Control-|
	   ERASE    VERASE    #
	   KILL	    VKILL     @
	   EOF	    VEOF      Control-D
	   EOL	    VEOL      NUL
	   EOL2	    VEOL2     disabled
	   MIN	    VMIN      NUL
	   TIME	    VTIME     Control-D
	   SUSP	    VSUSP     disabled
	   START    VSTART    Control-Q
	   STOP	    VSTOP     Control-S
	   WERASE   VWERASE   disabled
	   LNEXT    VLNEXT    disabled
	   DSUSP    VDSUSP    disabled

    termio Structure
      The termio structure has been superseded by the termios structure and
      is provided for backward compatibility with prior applications (see
      termio Caveats).	The structure is defined in the header file
      <termio.h> and is defined as follows:

	   #define NCC	   8
	   struct  termio  {
		   unsigned short  c_iflag;    /* input modes */
		   unsigned short  c_oflag;    /* output modes */



 Hewlett-Packard Company	   - 11 -   HP-UX Release 11i: November 2000






 termio(7)							   termio(7)




		   unsigned short  c_cflag;    /* control modes */
		   unsigned short  c_lflag;    /* local modes */
		   char		   c_line;     /* line discipline */
		   unsigned char   c_cc[NCC];  /* control chars */
	   };

    Modes
      The next four sections describe the specific terminal characteristics
      that can be set using the termios and termio structures (see termio
      Caveats).	 Any bits in the modes fields that are not explicitly
      defined below are ignored.  However, they should always be clear to
      prevent future compatibility problems.

    Input Modes
      The c_iflag field describes the basic terminal input control:

	   IGNBRK	  Ignore break condition.
	   BRKINT	  Signal interrupt on break.
	   IGNPAR	  Ignore characters with parity errors.
	   PARMRK	  Mark parity errors.
	   INPCK	  Enable input parity check.
	   ISTRIP	  Strip character.
	   INLCR	  Map NL to CR on input.
	   IGNCR	  Ignore CR.
	   ICRNL	  Map CR to NL on input.
	   IUCLC	  Map uppercase to lowercase on input.
	   IXON		  Enable start/stop output control.
	   IXANY	  Enable any character to restart output.
	   IXOFF	  Enable start/stop input control.
	   IMAXBEL	  Enable BEL on input line too long.

      A break condition is defined as a sequence of zero-value bits that
      continues for more than the time to send one character. For example, a
      character framing or parity error with data all zeros is interpreted
      as a single break condition.

      If IGNBRK is set, the break condition is ignored.	 Therefore the break
      condition cannot be read by any process.	If IGNBRK is clear and
      BRKINT is set, the break condition flushes both the input and output
      queues and, if the terminal is the controlling terminal of a
      foreground process group, the break condition generates a single
      SIGINT signal to that foreground process group.  If neither IGNBRK nor
      BRKINT is set, a break condition is read as a single \0 character, or
      if PARMRK is set, as the three-character sequence \377, \0, \0.

      If IGNPAR is set, characters with other framing and parity errors
      (other than break) are ignored.

      If PARMRK is set, and IGNPAR is clear, a character with a framing or
      parity error (other than break) is read as the three-character
      sequence: \377, \0, X, where X is the data of the character received



 Hewlett-Packard Company	   - 12 -   HP-UX Release 11i: November 2000






 termio(7)							   termio(7)




      in error.	 To avoid ambiguity in this case, if ISTRIP is clear, a
      valid character of \377 is read as \377, \377.  If both PARMRK and
      IGNPAR are clear, a framing or parity error (other than break) is read
      as the character \0.

      If INPCK is set, input parity checking is enabled.  If INPCK is clear,
      input parity checking is disabled.  Whether input parity checking is
      enabled or disabled is independent of whether parity detection is
      enabled or disabled (see Control Modes).	If PARENB is set (see
      Control Modes) and INPCK is clear, parity generation is enabled but
      input parity checking is disabled; the hardware to which the terminal
      is connected will recognize the parity bit, but the terminal special
      file will not check whether this bit is set correctly or not.

      The following table shows the interrelationship between the flags
      IGNBRK, BRKINT, IGNPAR, and PARMRK.  The column marked Input gives
      various types of input characters received, indicated as follows:

	   0	   NUL character (\0)
	   C	   Character other than NUL
	   P	   Parity error detected
	   F	   Framing error detected

      Items enclosed in brackets indicate one or more of the conditions are
      true.

      If the INPCK flag is clear, characters received with parity errors are
      not processed according to this table, but instead, as if no parity
      error had occurred.  Under the flag columns, Set indicates the flag is
      set, Clear indicates the flag is not set, and X indicates the flag may
      be set or clear.	The column labeled Read shows the results that will
      be passed to the application code.  A - indicates that no character or
      condition is passed to the application code.  The value SIGINT
      indicates that no character is returned, but that the SIGINT signal is
      sent to the foreground process group of the controlling terminal.

	  Input	   IGNBRK   BRKINT   IGNPAR   PARMRK	     Read
	  _____________________________________________________________
	  0[PF]	    Set	      X	       X	X	      -
	  0[PF]	   Clear     Set       X	X	    SIGINT
	  0[PF]	   Clear    Clear      X       Set     '\377','\0','\0'
	  0[PF]	   Clear    Clear      X      Clear	     '\0'
	  C[PF]	     X	      X	      Set	X	      -
	  C[PF]	     X	      X	     Clear     Set	'\377','\0',C
	  C[PF]	     X	      X	     Clear    Clear	     '\0'
	  '\377'     X	      X	       X       Set	'\377','\377'

      If ISTRIP is set, valid input characters are first stripped to 7-bits,
      otherwise all 8-bits are processed.





 Hewlett-Packard Company	   - 13 -   HP-UX Release 11i: November 2000






 termio(7)							   termio(7)




      If INLCR is set, a received NL character is translated into a CR
      character.  If IGNCR is set, a received CR character is ignored (not
      read).  If IGNCR is clear and ICRNL is set, a received CR character is
      translated into a NL character.

      If IUCLC is set, a received uppercase alphabetic character is
      translated into the corresponding lowercase character.

      If IXON is set, start/stop output control is enabled.  A received STOP
      character suspends output and a received START character restarts
      output.  If IXANY and IXON are set, any input character without a
      framing or parity error restarts output that has been suspended.	When
      these three flags are set, output suspended, and an input character
      received with a framing or parity error, output resumes if processing
      it results in data being read.  When IXON is set, START and STOP
      characters are not read, but merely perform flow control functions.
      When IXON is clear, the START and STOP characters are read.

      If IXOFF is set, start/stop input control is enabled.  The system
      transmits a STOP character when the number of characters in the input
      queue exceeds a system defined value (high water mark).  This is
      intended to cause the terminal device to stop transmitting data in
      order to prevent the number of characters in the input queue from
      exceeding MAX_INPUT.  When enough characters have been read from the
      input queue that the number of characters remaining is less than
      another system defined value (low water mark), the system transmits a
      START character which is intended to cause the terminal device to
      resume transmitting data (without risk of overflowing the input
      queue).  In order to avoid potential deadlock, IXOFF is ignored in
      canonical mode whenever there is no line delimiter in the input
      buffer.  In this case, the STOP character is not sent at the high
      water mark, but will be transmitted later if a delimiter is received.
      If all complete lines are read from the input queue leaving only a
      partial line with no line delimiter, the START character is sent, even
      if the number of characters is still greater than the low water mark.
      When ICANON is set and the input stream contains more characters
      between line delimiters than the high water mark allows, there is no
      guarantee that IXOFF can prevent buffer overflow and data loss,
      because the STOP character may not be sent in time, if at all.

      If IMAXBEL is set, the ASCII BEL character is echoed if the input
      queue overflows.	Further input is not stored, but any input present
      in the input queue is not discarded.  If IMAXBEL is clear, no ASCII
      BEL character is echoed, and the input already present in the input
      queue is discarded when the input queue overflows.

      The initial input control value is all bits clear.

    Output Modes
      The c_oflag field specifies the system treatment of output:




 Hewlett-Packard Company	   - 14 -   HP-UX Release 11i: November 2000






 termio(7)							   termio(7)




	   OPOST	  Postprocess output.
	   OLCUC	  Map lowercase to uppercase on output.
	   ONLCR	  Map NL to CR-NL on output.
	   OCRNL	  Map CR to NL on output.
	   ONOCR	  No CR output at column 0.
	   ONLRET	  NL performs CR function.
	   OFILL	  Use fill characters for delay.
	   OFDEL	  Fill is DEL, else NUL.
	   NLDLY	  Select new-line delays:
	   NL0		  No delay
	   NL1		  Delay type 1
	   CRDLY	  Select carriage-return delays:
	   CR0		  No delay
	   CR1		  Delay type 1
	   CR2		  Delay type 2
	   CR3		  Delay type 3
	   TABDLY	  Select horizontal-tab delays:
	   TAB0		  No delay
	   TAB1		  Delay type 1
	   TAB2		  Delay type 2
	   TAB3		  Expand tabs to spaces.
	   XTABS	  Expand tabs to spaces.
	   BSDLY	  Select backspace delays:
	   BS0		  No delay
	   BS1		  Delay type 1
	   VTDLY	  Select vertical-tab delays:
	   VT0		  No delay
	   VT1		  Delay type 1
	   FFDLY	  Select form-feed delays:
	   FF0		  No delay
	   FF1		  Delay type 1

      If OPOST is set, output characters are post-processed as indicated by
      the remaining flags; otherwise characters are transmitted without
      change.

      If OLCUC is set, a lowercase alphabetic character is transmitted as
      the corresponding uppercase character.  This function is often used in
      conjunction with IUCLC.

      If ONLCR is set, the NL character is transmitted as the CR-NL
      character pair.  If OCRNL is set, the CR character is transmitted as
      the NL character.	 If ONOCR is set, no CR character is transmitted
      when at column 0 (first position).  If ONLRET is set, the NL character
      is assumed to do the carriage-return function; the column pointer will
      be set to 0, and the delays specified for CR will be used.  If ONLRET
      is clear, the NL character is assumed to perform only the line-feed
      function; the delays specified for NL are used and the column pointer
      remains unchanged.  For all of these cases, the column pointer is
      always set to 0 if the CR character is actually transmitted.




 Hewlett-Packard Company	   - 15 -   HP-UX Release 11i: November 2000






 termio(7)							   termio(7)




      The delay bits specify how long transmission stops to allow for
      mechanical or other movement when certain characters are sent to the
      terminal.	 The values of NL0, CR0, TAB0, BS0, VT0, and FF0 indicate no
      delay.  If OFILL is set, fill characters are transmitted for delay
      instead of a timed delay.	 This is useful for high baud rate
      terminals, that need only a minimal delay.  If OFDEL is set, the fill
      character is DEL; otherwise NUL.

      If a form-feed or vertical-tab delay is specified, it lasts for about
      2 seconds.

      New-line delay lasts about 0.10 seconds.	If ONLRET is set, carriage-
      return delays are used instead of the new-line delays.  If OFILL is
      set, two fill characters are transmitted.

      Carriage-return delay type 1 depends on the current column position;
      type 2 is about 0.10 seconds; type 3 about 0.15 seconds.	If OFILL is
      set, delay type 1 transmits two fill characters; type 2, four fill
      characters.

      Horizontal-tab delay type 1 is depends on the current column position.
      Type 2 is about 0.10 seconds; type 3 specifies that tabs are to be
      expanded into spaces.  If OFILL is set, two fill characters are
      transmitted for any delay.

      Backspace delay lasts about 0.05 seconds.	 If OFILL is set, one fill
      character is transmitted.

      The actual delays depend on line speed and system load.

      The initial output control value is all bits clear.

    Control Modes
      The c_cflag field describes the hardware control of the terminal:

	     CBAUD    Baud rate:   CSIZE    Character size:
	     B0	      Hang up	   CS5	    5 bits
	     B50      50 baud	   CS6	    6 bits
	     B75      75 baud	   CS7	    7 bits
	     B110     110 baud	   CS8	    8 bits
	     B134     134.5 baud
	     B150     150 baud	   CSTOPB   Send two stop bits, else one.
	     B200     200 baud	   CREAD    Enable receiver.
	     B300     300 baud	   PARENB   Parity enable.
	     B600     600 baud	   PARODD   Odd parity, else even.
	     B900     900 baud	   HUPCL    Hang up on last close.
	     B1200    1200 baud	   CLOCAL   Local line, else dial-up.
	     B1800    1800 baud	   LOBLK    Reserved for use by shl(1).
	     B2400    2400 baud
	     B3600    3600 baud
	     B4800    4800 baud



 Hewlett-Packard Company	   - 16 -   HP-UX Release 11i: November 2000






 termio(7)							   termio(7)




	     B7200    7200 baud
	     B9600    9600 baud
	     B19200   19200 baud
	     B38400   38400 baud
	     EXTA     External A
	     EXTB     External B


      The CBAUD bits specify the baud rate.  The zero baud rate, B0, is used
      to hang up the connection.  If B0 is specified, the modem control
      lines (see modem(7)) cease to be asserted.  Normally, this disconnects
      the line.	 For any particular hardware, impossible speed changes are
      ignored.	CBAUD is provided for use with the termio structure.  When
      the termios structure is used, several routines are available for
      setting and getting the input and output baud rates (see termios
      Structure Related Functions).

      The CSIZE bits specify the character size in bits for both
      transmission and reception.  This size does not include the parity
      bit, if any.  If CSTOPB is set, two stop bits are used; otherwise one
      stop bit.	 For example, at 110 baud, many devices require two stop
      bits.

      If PARENB is set, parity generation is enabled (a parity bit is added
      to each output character).  Furthermore, parity detection is enabled
      (incoming characters are checked for the correct parity).	 If PARENB
      is set, PARODD specifies odd parity if set; otherwise even parity is
      used.  If PARENB is clear, both parity generation and parity checking
      are disabled.

      If CREAD is set, the receiver is enabled.	 Otherwise no characters can
      be received.

      The specific effects of the HUPCL and CLOCAL bits depend on the mode
      and type of the modem control in effect.	See modem(7) for the
      details.

      If HUPCL is set, the modem control lines for the port are lowered
      (disconnected) when the last process using the open port closes it or
      terminates.

      If CLOCAL is set, a connection does not depend on the state of the
      modem status lines.  If CLOCAL is clear, the modem status lines are
      monitored.

      Under normal circumstances, a call to read() waits for a modem
      connection to complete.  However, if either the O_NDELAY or the
      O_NONBLOCK flags are set or CLOCAL is set, the open() returns
      immediately without waiting for the connection.  If CLOCAL is set, see
      Modem Disconnect for the effects of read() and write() for those files
      for which the connection has not been established or has been lost.



 Hewlett-Packard Company	   - 17 -   HP-UX Release 11i: November 2000






 termio(7)							   termio(7)




      LOBLK is used by the shell layers facility (see shl(1)).	The shell
      layers facility is not part of the general terminal interface, and the
      LOBLK bit is not examined by the general terminal interface.

      The initial hardware control value after open is B300, CS8, CREAD, and
      HUPCL.

    Local Modes
      The c_lflag field is used to control terminal functions.

	   ISIG		  Enable signals.
	   ICANON	  Canonical input (erase and kill processing).
	   XCASE	  Canonical upper/lower presentation.
	   ECHO		  Enable echo.
	   ECHOE	  Echo ERASE as correcting backspace sequence.
	   ECHOK	  Echo NL after kill character.
	   ECHONL	  Echo NL.
	   NOFLSH	  Disable flush after interrupt, quit, or suspend.
	   TOSTOP	  Send SIGTTOU for background output.
	   ECHOCTL	  Echo control characters as ^char, DEL as ^?.
	   ECHOPRT	  Echo erased character as character is erased.
	   ECHOKE	  BS SP BS erase entire line on line kill.
	   FLUSHO	  Output is being flushed.
	   PENDIN	  Reprocess pending input at next read or input
			  character.
	   IEXTEN	  Enable extended functions.

      If ISIG is set, each input character is checked against the special
      control characters INTR, QUIT, SUSP, and DSUSP (see Process Group
      Control IOCTL Commands).	If an input character matches one of these
      control characters, the function associated with that character is
      performed and the character is discarded.	 If ISIG is clear, no
      checking is done and the character is treated as a normal data
      character.  Thus these special input functions are possible only if
      ISIG is set.

      If ICANON is set, canonical processing is enabled.  This enables the
      erase and kill edit functions, and the assembly of input characters
      into lines delimited by NL, EOF, EOL, or EOL2.  If ICANON is clear,
      read requests are satisfied directly from the input queue.  A read
      blocks until at least MIN characters have been received or the timeout
      value TIME has expired between characters.  (See Non-Canonical Mode
      Input Processing (MIN/TIME Interaction)).	 This allows fast bursts of
      input to be read efficiently while still allowing single-character
      input.  The time value represents tenths of seconds.

      If XCASE is set, and if ICANON is set, an uppercase letter is accepted
      on input by preceding it with a \ character, and is output preceded by
      a \ character.  In this mode, the following escape sequences are
      generated on output and accepted on input:




 Hewlett-Packard Company	   - 18 -   HP-UX Release 11i: November 2000






 termio(7)							   termio(7)




      To obtain:   Use:
	  `	    \'
	  |	    \!
	  {	    \(
	  }	    \)
	  \	    \\

      For example, A is input as \a, \n as \\n, and \N as \\\n.	 XCASE would
      normally be used in conjunction with IUCLC and OLCUC for terminals
      that support only the first-sixty-four-character limited character
      set.  In this case, IUCLC processing is done before XCASE for input,
      and processing is done after XCASE for output.  Therefore typing A
      causes an a to be read because of IUCLC, and typing \A causes an A to
      be read since IUCLC produces \a which is turned into A by the XCASE
      processing.

      If ECHO is set, characters are echoed back to the terminal when
      received.	 If ECHO is clear, characters are not echoed.

      When ICANON is set, canonical processing is enabled.  This enables the
      erase and kill edit functions, and the assembly of input characters
      into lines delimited by NL, EOF, EOL and EOL2 as described in
      Canonical Mode Input Processing.	Furthermore, the following echo
      functions are possible.

      If ECHO and ECHOE are set, the ERASE and WERASE characters are echoed
      as the three-character ASCII sequence BS SP BS, which clears the last
      character or word from the CRT screen.

      If ECHO and ECHOPRT are set, and ECHOE is clear, the first ERASE and
      WERASE character in a sequence echoes a backslash (\) followed by the
      characters being erased.	Subsequent ERASE or WERASE characters echo
      the characters being erased in reverse order.  The next non-erase
      character causes a slash (/) to be typed before it is echoed.

      If ECHOKE and ECHO are set, the KILL character is echoed by erasing
      each character on the line from the CRT screen using using the method
      selected by ECHOE and ECHOPRT.

      If ECHOCTL and ECHO are set, all control characters (characters with
      codes between 0 and 37 octal) other than ASCII TAB, ASCII NL, the
      START and STOP characters, ASCII CR, and ASCII BS are echoed as ^char,
      where char is the character given by adding 100 octal to the control
      character's code.

      If ECHOK is set and ECHOKE is not set, the NL character is echoed
      after the kill character to emphasize that the line is being deleted.

      If ECHONL is set, the NL character is echoed even if ECHO is clear.
      This is useful for terminals set to local echo (that is, half duplex).




 Hewlett-Packard Company	   - 19 -   HP-UX Release 11i: November 2000






 termio(7)							   termio(7)




      Unless escaped, the EOF character is not echoed.	Because ASCII EOT is
      the default EOF character, this prevents terminals that respond to EOT
      from hanging up.

      If NOFLSH is set, the normal flush of the input and output queues
      associated with quit, interrupt, and suspend characters is not done.
      However, NOFLSH does not affect the flushing of data upon receipt of a
      break when BRKINT is set.

      If the TOSTOP bit is set, an attempt by a process that is not in the
      foreground process group to write to its controlling terminal will be
      denied when the process is not ignoring and not blocking the SIGTTOU
      signal.  If the write is denied and the process is a member of an
      orphaned process group write() returns -1 and sets errno to EIO and no
      signal is sent.  If the write is denied and the process is a not a
      member of an orphaned process group, the SIGTTOU signal is sent to
      that process group.

      If FLUSHO is set, data written to the terminal device is discarded.
      This bit is set by a program.  A program can cancel the FLUSHO effect
      by clearing FLUSHO.

      If PENDIN is set, any input that has not been read is reprocessed and
      possibly re-echoed when the next character arrives as input.

      If ICANON is set, the ERASE, KILL, and EOF characters can be escaped
      by a preceding \ character, in which case no special function is done.

      IEXTEN must be set before the ECHOCTL, ECHOPRT, ECHOKE, FLUSHO, and
      PENDIN functions are allowed.  In addition, the special characters
      WERASE and LNEXT are allowed only if IEXTEN is set.  IEXTEN does not
      affect any other functions.

      The initial local control value is all-bits-clear.

    Special Control Characters
      Special control characters are defined in the array c_cc.	 All of
      these special characters can be changed.	The subscript name and
      description for each element in both canonical and non-canonical mode
      are shown in the following table.

			  Subscript Usage
	    Canonical	 Non-Canonical	   Description
	   ______________________________________________
	      VEOF			 EOF character
	      VEOL			 EOL character
	      VEOL2			 EOL2 character
	     VERASE			 ERASE character
	     VWERASE			 WERASE character
	      VINTR	     VINTR	 INTR character
	      VKILL			 KILL character



 Hewlett-Packard Company	   - 20 -   HP-UX Release 11i: November 2000






 termio(7)							   termio(7)




			     VMIN	 MIN value
	      VQUIT	     VQUIT	 QUIT character
	     VSTART	    VSTART	 START character
	      VSTOP	     VSTOP	 STOP character
	      VSUSP	     VSUSP	 SUSP character
	     VDSUSP	    VDSUSP	 DSUSP character
			     VTIME	 TIME value
	     VLNEXT	    VLNEXT	 LNEXT character

    termios Structure-Related Functions
      The following functions are provided when using the termios structure.
      Note that the effects on the terminal device of the cfsetispeed() and
      cfsetospeed() functions do not become effective until the tcsetattr()
      function is successfully called.	Refer to the appropriate manual
      entries for details.

		termios Structure Functions
	   Function	     Description
	   ______________________________________
	   cfgetospeed()     get output baud rate
	   cfgetispeed()     get input baud rate
	   cfsetospeed()     set output baud rate
	   cfsetispeed()     set input baud rate
	   tcgetattr()	     get terminal state
	   tcsetattr()	     set terminal state

    termio Structure-Related IOCTL Commands
      Several ioctl() system calls apply to terminal files that use the
      termio structure (see termio Structure).	If a requested command is
      not recognized, the request returns -1 with errno set to EINVAL.

      ioctl() system calls that reference the termio structure have the
      form:

	   ioctl (fildes, command, arg)
	   struct termio *arg;

      Commands using this form are:

	   TCGETA	  Get the parameters associated with the terminal
			  and store them in the termio structure referenced
			  by arg.  This command is allowed from a background
			  process; however, the information may be
			  subsequently changed by a foreground process.

	   TCSETA	  Set the parameters associated with the terminal
			  from the termio structure referenced by arg.	The
			  change is immediate.	If characters are being
			  output when the command is requested, results are
			  undefined and the output may be garbled.




 Hewlett-Packard Company	   - 21 -   HP-UX Release 11i: November 2000






 termio(7)							   termio(7)




	   TCSETAW	  Wait for the output to drain before setting new
			  parameters.  This form should be used when
			  changing parameters that affect output.

	   TCSETAF	  Wait for the output to drain, then flush the input
			  queue and set the new parameters.

    termio Caveats
      Only the first eight special control characters (see termios
      Structure) can be set or returned.  The values of indices VEOL and
      VEOF are the same as indices VTIME and VMIN respectively.	 Hence if
      ICANON is set, VEOL or VTIME is the additional end-of-line character
      and VEOF or VMIN is the end-of-file character.  If ICANON is clear,
      VEOL or VTIME is the inter-character-timer value and VEOF or VMIN is
      the minimum number of characters desired for reads.

    Structure-Independent Functions
      The following functions which are independent of both the termio and
      termios structures are provided for controlling terminals.  Refer to
      the appropriate manual entries for details.

		     Structure-Independent Functions
	   Function	   Description
	   ___________________________________________________
	   tcsendbreak()   send a break
	   tcdrain()	   wait until output has drained
	   tcflush()	   flush input or output queue or both
	   tcflow()	   suspend or resume input or output
	   tcgetpgrp()	   get foreground process group id
	   tcsetpgrp()	   set foreground process group id
	   tcgetsid()	   get session id

    System Asynchronous I/O IOCTL Commands
      The following ioctl() system calls provide for system asynchronous I/O
      and have the form:

	   ioctl (fildes, command, arg)
	   int *arg;

      Commands using this form are:

	   FIOSSAIOSTAT	       If the integer referenced by arg is non-zero,
			       system asynchronous I/O is enabled; that is,
			       enable SIGIO to be sent to the process
			       currently designated with FIOSSAIOOWN (see
			       below) whenever the terminal device file
			       status changes from "no read data available"
			       to "read data available".  If no process has
			       been designated with FIOSSAIOOWN, enable
			       SIGIO to be sent to the first process that
			       opened the terminal device file.



 Hewlett-Packard Company	   - 22 -   HP-UX Release 11i: November 2000






 termio(7)							   termio(7)




			       If the designated process has exited, the
			       SIGIO signal is not sent to any process.

			       If the integer referenced by arg is 0, system
			       asynchronous I/O is disabled.

			       The default on open of a terminal device file
			       is that system asynchronous I/O is disabled.

	   FIOGSAIOSTAT	       The integer referenced by arg is set to 1 if
			       system asynchronous I/O is enabled.
			       Otherwise, the integer referenced by arg is
			       set to 0.

	   FIOSSAIOOWN	       Set the process ID that will receive the
			       SIGIO signals due to system asynchronous I/O
			       to the value of the integer referenced by
			       arg.  If no process can be found
			       corresponding to that specified by the
			       integer referenced by arg, the call returns
			       -1 with errno set to ESRCH.  A user with
			       appropriate privileges can designate that any
			       process receive the SIGIO signals.  If the
			       request is not made by a user with
			       appropriate privileges and the calling
			       process does not either designate that itself
			       or another process whose real, saved, or
			       effective user ID matches its real or
			       effective user ID or the calling process does
			       not designate a process that is a descendant
			       of the calling process to receive the SIGIO
			       signals, the call returns -1 with errno set
			       to EPERM.

			       If the designated process subsequently exits,
			       the SIGIO signal is not sent to any process.

			       The default on open of a terminal device file
			       is that the process performing the first open
			       is set to receive the SIGIO signals.

	   FIOGSAIOOWN	       The integer referenced by arg is set to the
			       process ID designated to receive SIGIO
			       signals.

    Line Control IOCTL Commands
      Several ioctl() system calls control input and output.  Some of these
      calls have the form:

	   ioctl (fildes, command, arg)
	   int arg;



 Hewlett-Packard Company	   - 23 -   HP-UX Release 11i: November 2000






 termio(7)							   termio(7)




      Commands using this form are:

	   TCSBRK	  Wait for the output to drain.	 If arg is 0, send a
			  break (zero bits for at least 0.25 seconds).	The
			  tcsendbreak() function performs the same function
			  (see tcsendbreak(3C)).

	   TCXONC	  Start/stop control.  If arg is 0, suspend output;
			  if 1, restart suspended output; if 2, transmit a
			  STOP character; if 3, transmit a START character.
			  If any other value is given for arg, the call
			  returns -1 with errno set to EINVAL.	The tcflow()
			  function performs the same functions (see
			  tcflow(3C)).

	   TCFLSH	  If arg is 0, flush the input queue; if 1, flush
			  the output queue; if 2, flush both the input and
			  output queues.  If any other value is given for
			  arg, the call returns -1 with errno set to EINVAL.
			  The tcflush() function performs the same functions
			  (see tcflush(3C)).

			  Sending a BREAK is accomplished by holding the
			  data transmit line at a SPACE or logical zero
			  condition for at least 0.25 seconds.	During this
			  interval, data can be sent to the device, but
			  because of serial data interface limitations, the
			  BREAK takes precedence over all data.	 Thus, all
			  data sent to a device during a BREAK is lost.
			  This includes system-generated XON/XOFF characters
			  used for input flow control.	Note also that a
			  delay in transmission of the XOFF flow control
			  character until after the BREAK is terminated
			  could still result in data overflow because the
			  flow control character may not be sent soon
			  enough.

      Other calls have the form:

	   ioctl (fildes, command, arg)
	   int *arg;

      Commands using this form are:

	   FIONREAD	  Returns in the integer referenced by arg the
			  number of characters immediately readable from the
			  terminal device file.	 This command is allowed
			  from a background process; however, the data
			  itself cannot be read from a background process.





 Hewlett-Packard Company	   - 24 -   HP-UX Release 11i: November 2000






 termio(7)							   termio(7)




    Non-blocking I/O IOCTL Commands
      Non-blocking I/O is easily provided via the O_NONBLOCK and O_NDELAY
      flags available in both open(2) and fcntl(2).  The commands in this
      section are provided for backward compatibility with previously
      developed applications.  ioctl() system calls that provide a style of
      non-blocking I/O different from O_NONBLOCK and O_NDELAY have the form:

	   ioctl (fildes, command, arg)
	   int *arg;

      Commands using this form are:

	   FIOSNBIO	  If the integer referenced by arg is non-zero,
			  FIOSNBIO-style non-blocking I/O is enabled; that
			  is, subsequent reads and writes to the terminal
			  device file are handled in a non-blocking manner
			  (see below).	If the integer referenced by arg is
			  0, FIOSNBIO-style non-blocking I/O is disabled.

			  For reads, FIOSNBIO-style non-blocking I/O
			  prevents all read requests to that device file
			  from blocking, whether the requests succeed or
			  fail.	 Such a read request completes in one of
			  three ways:

			       +  If there is enough data available to
				  satisfy the entire request, the read
				  completes successfully, having read all of
				  the data, and returns the number of
				  characters read;

			       +  If there is not enough data available to
				  satisfy the entire request, the read
				  completes successfully, having read as
				  much data as possible, and returns the
				  number of characters read;

			       +  If there is no data available, the read
				  returns -1 with errno set to EWOULDBLOCK.

			  For writes, FIOSNBIO-style non-blocking I/O
			  prevents all write requests to that device file
			  from blocking, whether the requests succeed or
			  fail.	 Such a write request completes in one of
			  three ways:

			       +  If there is enough space available in the
				  system to buffer all the data, the write
				  completes successfully, having written out
				  all of the data, and returns the number of
				  characters written;



 Hewlett-Packard Company	   - 25 -   HP-UX Release 11i: November 2000






 termio(7)							   termio(7)




			       +  If there is not enough space in the buffer
				  to write out the entire request, the write
				  completes successfully, having written as
				  much data as possible, and returns the
				  number of characters written;

			       +  If there is no space in the buffer, the
				  write returns -1 with errno set to
				  EWOULDBLOCK.

			  To prohibit FIOSNBIO-style non-blocking I/O from
			  interfering with the O_NONBLOCK and O_NDELAY flags
			  (see open(2) and fcntl(2)), the functionality of
			  O_NONBLOCK and O_NDELAY always supersedes the
			  functionality of FIOSNBIO-style non-blocking I/O.
			  This means that if either O_NONBLOCK or O_NDELAY
			  is set, the driver performs read requests in
			  accordance with the definition of O_NDELAY or
			  O_NONBLOCK. When both O_NONBLOCK and O_NDELAY are
			  clear, the definition of FIOSNBIO-style non-
			  blocking I/O applies.

			  The default on open of a terminal device file is
			  that FIOSNBIO-style non-blocking I/O is disabled.

	   FIOGSNBIO	  The integer referenced by arg is set to 1, if
			  FIOSNBIO-style non-blocking I/O is enabled.
			  Otherwise, the integer referenced by arg is set to
			  0.

    Process Group Control IOCTL Commands
      The process group control features described here (except for setting
      and getting the delayed stop process character) are easily implemented
      using the functions tcgetattr(), tcsetattr(), tcgetpgrp(),
      tcsetpgrp(), and tcsetsid(), (see tcattribute(3C), tcgetpgrp(3C),
      tcsetpgrp(3C), and tcgetsid(3C) respectively).

      The following structure, used with process group control, is defined
      in <bsdtty.h>:

	   struct ltchars  {
		  unsigned char t_suspc;   /* stop process character*/
		  unsigned char t_dsuspc;  /* delayed stop process character*/
		  unsigned char t_rprntc;  /* reserved; must be '_POSIX_VDISABLE'*/
		  unsigned char t_flushc;  /* reserved; must be '_POSIX_VDISABLE'*/
		  unsigned char t_werasc;  /* reserved; must be '_POSIX_VDISABLE'*/
		  unsigned char t_lnextc;  /* reserved; must be '_POSIX_VDISABLE'*/
	   };

      The initial value for all these characters is _POSIX_VDISABLE, which
      causes them to be disabled.  The meaning for each character is as



 Hewlett-Packard Company	   - 26 -   HP-UX Release 11i: November 2000






 termio(7)							   termio(7)




      follows:

	   t_suspc	  Suspend the foreground process group.	 A suspend
			  signal (SIGTSTP) is sent to all processes in the
			  foreground process group.  Normally, each process
			  is forced to stop, but arrangements can be made to
			  either ignore or block the signal, or to receive a
			  trap to an agreed-upon location; see signal(2) and
			  signal(5).  When enabled, the typical value for
			  this character is Control-Z or ASCII SUB.  Setting
			  or getting t_suspc is equivalent to setting or
			  getting the SUSP special control character.

	   t_dsuspc	  Same as t_suspc, except that the suspend signal
			  (SIGTSTP) is sent when a process reads the
			  character, rather than when the character is
			  typed.  When enabled, the typical value for this
			  character is Ctrl-Y or ASCII EM.

      Attempts to set any of the reserved characters to a value other than
      _POSIX_VDISABLE cause ioctl() to return -1 with errno set to EINVAL
      with no change in value of the reserved character.

      ioctl() system calls that use the above structure have the form:

	   ioctl (fildes, command, arg)
	   struct ltchars *arg;

      Commands using this form are:

	   TIOCGLTC	  Get the process group control characters and store
			  them in the ltchars structure referenced by arg.
			  This command is allowed from a background process.
			  However, the information may be subsequently
			  changed by a foreground process.

	   TIOCSLTC	  Set the process group control characters from the
			  structure referenced by arg.

      Additional process group control ioctl() system calls have the form:

	   ioctl (fildes, command, arg)
	   unsigned int *arg;

      Commands using this form are:

	   TIOCGPGRP	  Returns in the integer referenced by arg the
			  foreground process group associated with the
			  terminal.  This command is allowed from a
			  background process.  However, the information may
			  be subsequently changed by a foreground process.



 Hewlett-Packard Company	   - 27 -   HP-UX Release 11i: November 2000






 termio(7)							   termio(7)




			  This feature is easily implemented using the
			  tcgetpgrp() function (see tcgetpgrp(3C)).

			  If the ioctl() call fails, it returns -1 and sets
			  errno to one of the following values:

			       [EBADF]	   fildes is not a valid file
					   descriptor.

			       [ENOTTY]	   The file associated with fildes
					   is not the controlling terminal,
					   or the calling process does not
					   have a controlling terminal.

			       [EACCES]	   The file associated with fildes
					   is the controlling terminal of
					   the calling process, however,
					   there is no foreground process
					   group defined for the controlling
					   terminal.

					   Note: EACCES may not be returned
					   in future releases.	Behavior in
					   cases where no foreground process
					   group is defined for the
					   controlling terminal may change
					   in future versions of the POSIX
					   standard.  Portable applications,
					   therefore, should not rely on
					   this error condition.

	   TIOCSPGRP	  Sets the foreground process group associated with
			  the terminal to the value referenced by arg.	This
			  feature is easily implemented using the
			  tcsetpgrp() function (see tcsetpgrp(3C)).

			  If the ioctl() call fails, it returns -1 and sets
			  errno to one of the following values:

			       [EBADF]	   fildes is not a valid file
					   descriptor.

			       [EINVAL]	   The process ID referenced by arg
					   is not a supported value.

			       [ENOTTY]	   The calling process does not have
					   a controlling terminal, or the
					   fildes is not the controlling
					   terminal, or the controlling
					   terminal is no longer associated
					   with the session of the calling



 Hewlett-Packard Company	   - 28 -   HP-UX Release 11i: November 2000






 termio(7)							   termio(7)




					   process.

			       [EPERM]	   The process ID referenced by arg
					   is a supported value but does not
					   match the process group ID of a
					   process in the same session as
					   the calling process.

	   TIOCGSID	  Returns in the integer referenced by arg the
			  session ID of the terminal specified by fildes.
			  This feature is easily implemented using the
			  tcgetsid() function (see tcgetsid(3C)).

			  If the ioctl() call fails, it returns -1 and sets
			  errno to one of the following values:

			       [EBADF]	   fildes is not a valid file
					   descriptor.

			       [ENOTTY]	   The device associated with fildes
					   is not a terminal.

			       [EACCES]	   The fildes is a terminal that is
					   not allocated to a session.

	   TIOCLGET	  Get the process group control mode word and store
			  it in the int referenced by arg.  This command is
			  allowed from a background process; however, the
			  information may be subsequently changed by a
			  foreground process.

	   TIOCLSET	  Set the process group control mode word to the
			  value of the int referenced by arg.

	   TIOCLBIS	  Use the int referenced by arg as a mask of bits to
			  set in the process group control mode word.

	   TIOCLBIC	  Use the int referenced by arg as a mask of bits to
			  clear in the process group control mode word.

      The following bit is defined in the process group control mode word:

	   LTOSTOP	  Send SIGTTOU for background writes.

      Setting or clearing LTOSTOP is equivalent to setting or clearing the
      TOSTOP flag (see Local Modes).  If LTOSTOP is set and a process is not
      in the foreground process group of its controlling terminal, a write
      by the process to its controlling terminal may be denied (see Terminal
      Access Control).





 Hewlett-Packard Company	   - 29 -   HP-UX Release 11i: November 2000






 termio(7)							   termio(7)




    Terminal Size IOCTL Commands
      The following ioctl() system calls are used to get and set terminal
      size information for the terminal referenced by fildes.  These ioctl()
      system calls use the winsize structure to get and set the terminal
      size information.	 The winsize structure, defined in <termios.h>, has
      the following members :

	   unsigned short  ws_row;     /* Rows, in characters */
	   unsigned short  ws_col;     /* Columns, in characters */
	   unsigned short  ws_xpixel;  /* Horizontal size, in pixels */
	   unsigned short  ws_ypixel;  /* Vertical size, in pixels */

      The initial values for all elements of terminal size are zero.  The
      values for terminal size are neither set nor used by the general
      terminal interface, and have no effect on the functionality of the
      general terminal interface.  The values for terminal size are set and
      used only by applications that access them through the terminal-size
      ioctl() system calls (see ioctl(2)).

      ioctl() system calls that use the above structure have the form:

	   ioctl (fildes, command, arg)
	   struct winsize *arg;

      Commands using this form are:

	   TIOCGWINSZ	  Get the terminal size values and store them in the
			  winsize structure referenced by arg.	This command
			  is allowed from a background process.

	   TIOCSWINSZ	  Set the terminal size values from the winsize
			  structure referenced by arg.	If any of the new
			  values differ from previous values, a SIGWINCH
			  signal is sent to all processes in the terminal's
			  foreground process group.

    Console Output Redirection IOCTL Command
      Output which would normally be sent to the system console may be
      redirected to any other TTY device or pseudo-device in the system.
      The ioctl() system call used to control console output redirection has
      the form:

	   ioctl (fildes, command, arg)
	   int arg;

      The command using this form is:

	   TIOCCONS	  Redirect system console output.  Any output that
			  would normally be sent to the system console,
			  either through kernel printf requests, or through
			  the console special file, will instead be sent to



 Hewlett-Packard Company	   - 30 -   HP-UX Release 11i: November 2000






 termio(7)							   termio(7)




			  the terminal referenced by fildes.  The value of
			  arg is ignored.  The user must have superuser
			  privileges to execute this request.  Otherwise,
			  the call returns -1 with errno set to EPERM.	If
			  the console output has not been redirected to a
			  different device by a later call to this command,
			  it is redirected back to the physical console
			  device when fildes is closed.

 WARNINGS
      Various HP-UX implementations use non-serial interfaces that look like
      terminals (such as bit-mapped graphics displays) or ``smart cards''
      that cannot implement the exact capabilities described above.
      Therefore, not all systems can exactly meet the standard stated above.
      Each implementation is required to state any deviations from the
      standard as part of its system-specific documentation.

	   FIOSSAIOSTAT	       is similar to BSD 4.2 FIOASYNC, with the
			       addition of provisions for security.

	   FIOGSAIOSTAT	       is of HP origin, complements FIOSSAIOSTAT,
			       and allows saving and restoring system
			       asynchronous I/O TTY states for command
			       interpreter processes.

	   FIOSSAIOOWN	       is similar to BSD 4.2 FIOSETOWN, with
			       additional provisions for security.

	   FIOGSAIOOWN	       is similar to BSD FIOGETOWN.  4.2 Note also
			       the difference that the BSD 4.2 version of
			       this functionality used process groups, while
			       the HP-UX version only uses processes.

	   FIOSNBIO	       is the same as BSD FIONBIO, 4.2 except that
			       it does not interfere with the O_NDELAY or
			       O_NONBLOCK open() and fcntl() flags.

	   FIOGNBIO	       is of HP origin, complements FIOSNBIO, and
			       allows saving and restoring the FIOSNBIO
			       -style non-blocking I/O TTY state for command
			       interpreter processes.

      The general terminal interface uses a system resource known as a
      cblock to store data being transmitted or received through a
      communications port.  These cblocks are continuously used and freed
      for reuse as data pass through the system.  If too few cblocks are
      configured in the system, the cblock pool may be temporarily or
      permanently exhausted, and data loss, system hangs, or reduced system
      performance can result.





 Hewlett-Packard Company	   - 31 -   HP-UX Release 11i: November 2000






 termio(7)							   termio(7)




      If cblock exhaustion is suspected, you can examine the system message
      buffer with dmesg (see dmesg(1M)) for messages indicating cblock
      exhaustion has occurred.	Or, you can use adb (see adb(1)) if
      examining the corefile of a dump.	 The message format is

	   WARNING: cblock exhaustion occurred n times

      where n indicates the number of times the operating system has
      requested a cblock and none could be provided.  If this message is
      observed, the kernel should be reconfigured to generate a larger
      number of cblocks.

      A cblock is 32 bytes in length.  The default number of cblocks
      configured in the system is computed from the tunable system parameter
      maxusers, and is defined to be

	   100+16*maxusers

      This can be overridden by using the optional tunable system parameter
      nclist to specify the desired number of cblocks to be used in the
      system.

      SAM or config(1M) may be used to generate a new kernel with a new
      nclist value.

 DEPENDENCIES
    Series 700
      Built-in serial ports on Series 700 machines support the following
      additional baud rate settings: 57600, and 115200.	 An RS-232-to-RS-422
      converter may be required to achieve practical cable lengths at these
      baud rates (because RS-232 only specifies up to 19200 baud).

      Timed delays are not supported.

      Built-in serial ports on Series 700 systems have RTS and CTS flow
      control capability, configurable receive FIFO trigger levels, and a
      configurable transmit limit.  RTS/CTS hardware handshaking can be
      enabled through a bit in the device file minor number, through an
      ioctl() call (see termiox(7)), or through the stty command (see
      stty(1)).

      The receive FIFO trigger level is configurable through two bits in the
      device file minor number.	 The receive FIFO trigger level is used to
      set the level at which a receive interrupt is generated to the system.
      Setting a smaller value for the receive FIFO trigger level enables the
      system to react more quickly to receipt of characters.  However, using
      a smaller trigger level increases system overhead to process the
      additional interrupts.  A higher receive FIFO trigger level reduces
      the system interrupt overhead for heavy inbound data traffic at the
      cost of less time for the system to read data from the hardware before
      receive FIFOs are overrun.  When using RTS flow control, the receive



 Hewlett-Packard Company	   - 32 -   HP-UX Release 11i: November 2000






 termio(7)							   termio(7)




      FIFO trigger level also determines the point at which the hardware
      lowers RTS to protect the receive FIFO.  Use of a higher receive FIFO
      trigger level also reduces XOFF flow control responsiveness because,
      under light inbound data flow conditions, receipt of the XOFF
      character by the system is slightly delayed.  Choice of the
      appropriate receive FIFO trigger level should be based upon how the
      serial port is to be used.  For most applications a receive FIFO
      trigger level of 8 (c3,c2 = 10) is suggested.

      Two bits in the device file minor number specify the transmit limit,
      the number of characters which are successively loaded into the
      transmit FIFO.  Setting a smaller transmit limit allows the
      transmitter to be more responsive to flow control either from receipt
      of an XOFF character or de-assertion of CTS at the cost of increased
      system interrupt overhead.  Setting a larger transmit limit reduces
      interrupt overhead but is not as responsive to flow control since the
      remainder of the transmit FIFO can be transmitted even after the
      transmitter is flow controlled.  When communicating with devices which
      have little tolerance for data receipt after flow control, one must
      choose the transmit limit appropriately.

      Device file minor number
      Series 700 device file minor numbers take the form:

	   0xIIC0HM

      where:

	   II =	   Two hexadecimal digits (8 bits) to indicate the instance
		   of the serial interface.

	   C =	   One hexadecimal digit (4 bits) for FIFO control.  Values
		   for each bit are as follows:





















 Hewlett-Packard Company	   - 33 -   HP-UX Release 11i: November 2000






 termio(7)							   termio(7)




			______________________________________________
			|Receive FIFO Trigger Level | Transmit Limit  |
			|___________________________|_________________|
			|c  |	       |	    |	 |    |	      |
			| 3 |	c2     |   Level    | c1 | c0 | Limit |
			|___|__________|____________|____|____|_______|
			|0  |	 0     |     1	    | 0	 | 0  |	  1   |
			|0  |	 1     |     4	    | 0	 | 1  |	  4   |
			|1  |	 0     |     8	    | 1	 | 0  |	  8   |
			|1  |	 1     |    14	    | 1	 | 1  |	 12   |
			|___|__________|____________|____|____|_______|

	   H =	   One hexadecimal digit (4 bits) which controls diagnostic
		   access and hardware flow control.


			 _____________________________________________
			  Bit			Value
			 |____|_______________________________________|
			 |h   |					      |
			 | 3  | Diagnostic telephony access	      |
			 |h2  | Reserved			      |
			 |h1  | Reserved			      |
			 |h0  | Enables RTS/CTS hardware flow control |
			 |____|_______________________________________|

	   M =	   One hexadecimal digit (4 bits) to determine the port
		   access type.	 Values for each bit are as follows:


			    _______________________________________
			    |Bit  |		Value		   |
			    |_____|________________________________|
			    | m3  |  TI/ALP			   |
			    | m2  |  0 = Simple protocol (U.S.),   |
			    |	  |  1 = CCITT protocol (Europe)   |
			    |m1m0 | 00 = Direct			   |
			    |	  | 01 = Dial-out modem		   |
			    |	  | 10 = Dial-in modem		   |
			    |	  | 11 = Invalid		   |
			    |_____|________________________________|

    Series 800
      Timed output delays are not directly supported.  If used, an
      appropriate number of fill characters (based on the current baud rate)
      is output.  The total time to output the fill characters is at least
      as long as the time requested.

      The system specified input flow control values are as follows: low
      water mark is 60, high water mark is 180, and maximum allowed input is
      512.



 Hewlett-Packard Company	   - 34 -   HP-UX Release 11i: November 2000






 termio(7)							   termio(7)




      The HP 98196A (formerly 27140A option 800) interface does not support
      the following hardware settings:

	   CBAUD     B200, B38400, EXTA, EXTB.

      The HP A1703-60003 and the HP 28639-60001 interfaces do not support
      baud rates above 9600.  Furthermore, changing the following hardware
      settings on port 0 from the default (9600 baud, 8 bit characters, 1
      stop bit, no parity) is not supported:

	   CBAUD, CSIZE, CSTOPB, PARENB, PARODD.

      The HP J2094A interface does not support baud rates above 19200.

      The HP J2094A supports RTS and CTS flow control.	The RTS/CTS hardware
      handshaking can be enabled through a bit in the device file minor
      number, through an ioctl() call (see termiox(7)), or through the stty
      command (see stty(1)).

      Device file minor number
      Series 800 device file minor numbers take the form:

	   0xIIPPHM

      where:

	   II =	   Two hexadecimal digits (8 bits) to indicate the instance
		   of the serial interface.

	   PP =	   Two hexadecimal digits (8 bits) to indicate the port
		   number of this device on the serial interface.

	   H =	   One hexadecimal digit (4 bits) which controls diagnostic
		   access and hardware flow control (HP J2094A only).


			 _____________________________________________
			  Bit			Value
			 |____|_______________________________________|
			 |h   |					      |
			 | 3  | Card diagnostic			      |
			 |h2  | Port diagnostic			      |
			 |h1  | Reserved			      |
			 |h0  | Enables RTS/CTS hardware flow control |
			 |____|_______________________________________|

	   M =	   One hexadecimal digit (4 bits) for the port access type.
		   Values for each bit are as follows:






 Hewlett-Packard Company	   - 35 -   HP-UX Release 11i: November 2000






 termio(7)							   termio(7)




			    _______________________________________
			     Bit		Value
			    |_____|________________________________|
			    | m	  |				   |
			    |  3  |  TI/ALP			   |
			    | m2  |  0 = Simple protocol (U.S.),   |
			    |	  |  1 = CCITT protocol (Europe)   |
			    |m1m0 | 00 = Direct			   |
			    |	  | 01 = Dial-out modem		   |
			    |	  | 10 = Dial-in modem		   |
			    |	  | 11 = Invalid		   |
			    |_____|________________________________|

 AUTHOR
      termios was developed HP and the IEEE Computer Society.

      termio was developed by HP, AT&T, and the University of California,
      Berkeley.

 FILES
      /dev/console
      /dev/cua*
      /dev/cul*
      /dev/tty*
      /dev/ttyd*

      EISA mux has adopted the following device files naming convention:

	   /dev/<&lt&lt&lt;cua|cul|tty|ttyd>&gt&gt&gt;<&lt&lt&lt;Instance_Number>&gt&gt&gt;<&lt&lt&lt;Port_Module_Name>&gt&gt&gt;<&lt&lt&lt;Port_Number>&gt&gt&gt;

      where Port_Module_Name = [a..h], Port_Number = 1-16

      For example: /dev/cua2a1, /dev/cul2b8, /dev/tty2g12, /dev/ttyd2h16

 SEE ALSO
      adb(1), shl(1), stty(1), config(1M), dmesg(1M), mknod(1M), fork(2),
      ioctl(2), setsid(2), signal(2), stty(2), setpgid(2), blmode(3C),
      cfspeed(3C), tccontrol(3C), tcattribute(3C), tcgetpgrp(3C),
      tcsetpgrp(3C), tcgetsid(3C), signal(5), unistd(5), sttyV6(7), tty(7),
      modem(7), termiox(7).

 STANDARDS CONFORMANCE
      termio: SVID2, SVID3, XPG2

      termios: AES, SVID3, XPG3, XPG4, FIPS 151-2, POSIX.1









 Hewlett-Packard Company	   - 36 -   HP-UX Release 11i: November 2000