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

  man pages->IRIX man pages -> termios (3t)              
Title
Content
Arch
Section
 

Contents


termios(3t)							   termios(3t)


NAME    [Toc]    [Back]

     termios: tcgetattr, tcsetattr, tcsendbreak, tcdrain, tcflush, tcflow,
     cfgetospeed, cfgetispeed, cfsetispeed, cfsetospeed, tcgetpgrp, tcsetpgrp,
     tcgetsid -	general	terminal interface

SYNOPSIS    [Toc]    [Back]

     #include <termios.h>

     int tcgetattr(int fildes, struct termios *termios_p);
     int tcsetattr(int fildes, int optional_actions,
	  const	struct termios *termios_p);

     int tcsendbreak(int fildes, int duration);
     int tcdrain(int fildes);

     int tcflush(int fildes, int queue_selector);
     int tcflow(int fildes, int	action);

     speed_t cfgetospeed(struct	termios	*termios_p);
     int cfsetospeed(const struct termios *termios_p, speed_t speed);

     speed_t cfgetispeed(struct	termios	*termios_p);
     int cfsetispeed(const struct termios *termios_p, speed_t speed);

     #include <sys/types.h>
     #include <unistd.h>

     pid_t tcgetpgrp(int fildes);
     int tcsetpgrp(int fildes, pid_t pgid);
     pid_t tcgetsid(int	fildes);

DESCRIPTION    [Toc]    [Back]

     These functions describe a	general	terminal interface for controlling
     asynchronous communications ports.	 A more	detailed overview of the
     terminal interface	can be found in	termio(7), which also describes	an
     ioctl(2) interface	that provides the same functionality.  However,	the
     function interface	described here is the preferred	user interface.

     Many of the functions described here have a termios_p argument that is a
     pointer to	a termios structure.  This structure contains the following
     members:

	  tcflag_t   c_iflag;	     /*	input modes */
	  tcflag_t   c_oflag;	     /*	output modes */
	  tcflag_t   c_cflag;	     /*	control	modes */
	  tcflag_t   c_lflag;	     /*	local modes */
	  speed_t    c_ospeed;	     /*	output speed */
	  speed_t    c_ispeed;	     /*	input speed; not supported */
	  cc_t	     c_cc[NCCS];     /*	control	chars */






									Page 1






termios(3t)							   termios(3t)



     These structure members are described in detail in	termio(7).

   Get and Set Terminal	Attributes
     The tcgetattr function gets the parameters	associated with	the object
     referred by fildes	and stores them	in the termios structure referenced by
     termios_p.	 This function may be invoked from a background	process;
     however, the terminal attributes may be subsequently changed by a
     foreground	process.

     The tcsetattr function sets the parameters	associated with	the terminal
     (unless support is	required from the underlying hardware that is not
     available)	from the termios structure referenced by termios_p as follows:

	  If optional_actions is TCSANOW, the change occurs immediately.

	  If optional_actions is TCSADRAIN, the	change occurs after all	output
	  written to fildes has	been transmitted.  This	function should	be
	  used when changing parameters	that affect output.

	  If optional_actions is TCSAFLUSH, the	change occurs after all	output
	  written to the object	referred by fildes has been transmitted, and
	  all input that has been received but not read	is discarded before
	  the change is	made.

     The symbolic constants for	the values of optional_actions are defined in
     <termios.h>.

   Line	Control
     If	the terminal is	using asynchronous serial data transmission, the
     tcsendbreak function causes transmission of a continuous stream of	zerovalued
 bits for a specific	duration.  If duration is zero,	it causes
     transmission of zero-valued bits for at least 0.25	seconds, and not more
     than 0.5 seconds.	If duration is not zero, it behaves in a way similar
     to	tcdrain.

     If	the terminal is	not using asynchronous serial data transmission, the
     tcsendbreak function sends	data to	generate a break condition or returns
     without taking any	action.

     The tcdrain function waits	until all output written to the	object
     referred to by fildes has been transmitted.

     The tcflush function discards data	written	to the object referred to by
     fildes but	not transmitted, or data received but not read,	depending on
     the value of queue_selector:

	  If queue_selector is TCIFLUSH, it flushes data received but not
	  read.

	  If queue_selector is TCOFLUSH, it flushes data written but not
	  transmitted.




									Page 2






termios(3t)							   termios(3t)



	  If queue_selector is TCIOFLUSH, it flushes both data received	but
	  not read, and	data written but not transmitted.

     The tcflow	function suspends transmission or reception of data on the
     object referred to	by fildes, depending on	the value of action:

	  If action is TCOOFF, it suspends output.

	  If action is TCOON, it restarts suspended output.

	  If action if TCIOFF, the system transmits a STOP character, which
	  causes the terminal device to	stop transmitting data to the system.

	  If action is TCION, the system transmits a START character, which
	  causes the terminal device to	start transmitting data	to the system.

   Get and Set Baud Rate    [Toc]    [Back]
     The baud rate functions get and set the values of the input and output
     baud rates	in the termios structure.  The effects on the terminal device
     described below do	not become effective until the tcsetattr function is
     successfully called.

     The input and output baud rates are stored	in the termios structure.  The
     speed_t values passed to and returned from	these functions	are integral
     values directly containing	the desired rate in bits per second.  The
     integer 38400, for	example, represents 38400 bps.	Exactly	which values
     are supported depends on the type of hardware; see	serial(7) for more
     information.  The tcsetattr function will return EINVAL if	the specified
     rate is not supported by the hardware.  The names in this table represent
     common rates, and are defined for convenience in <termios.h>.

		   Name	    Description	      Name    Description
		  _______________________________________________
		  B0		Hang up	     B600	 600 baud
		  B50		50 baud	     B1200	1200 baud
		  B75		75 baud	     B1800	1800 baud
		  B110	       110 baud	     B2400	2400 baud
		  B134	     134.5 baud	     B4800	4800 baud
		  B150	       150 baud	     B9600	9600 baud
		  B200	       200 baud	     B19200    19200 baud
		  B300	       300 baud	     B38400    38400 baud
		  B57600     57600 baud	     B76800    76800 baud
		  B115200   115200 baud

     cfgetospeed gets the output baud rate stored in the termios structure
     pointed to	by termios_p.

     cfsetospeed sets the output baud rate stored in the termios structure
     pointed to	by termios_p to	speed.	The zero baud rate, B0,	is used	to
     terminate the connection.	If B0 is specified, the	modem control lines
     are no longer asserted.  Normally,	this disconnects the line.




									Page 3






termios(3t)							   termios(3t)



     cfgetispeed gets the input	baud rate and stores it	in the termios
     structure pointed to by termios_p.

     cfsetispeed sets the input	baud rate stored in the	termios	structure
     pointed to	by termios_p to	speed.	If the input baud rate is set to zero,
     the input baud rate is specified by the value of the output baud rate.
     Both cfsetispeed and cfsetospeed return a value of	zero if	successful and
     -1	to indicate an error.  Attempts	to set unsupported baud	rates are
     ignored.  This refers both	to changes to baud rates not supported by the
     hardware, and to changes setting the input	and output baud	rates to
     different values if the hardware does not support this.

   Get and Set Terminal	Foreground Process Group ID
     tcsetpgrp sets the	foreground process group ID of the terminal specified
     by	fildes to pgid.	 The file associated with fildes must be the
     controlling terminal of the calling process and the controlling terminal
     must be currently associated with the session of the calling process.
     pgid must match a process group ID	of a process in	the same session as
     the calling process.

     tcgetpgrp returns the foreground process group ID of the terminal
     specified by fildes.  tcgetpgrp is	allowed	from a process that is a
     member of a background process group; however, the	information may	be
     subsequently changed by a process that is a member	of a foreground
     process group.

   Get Terminal	Session	ID
     tcgetsid returns the session ID of	the terminal specified by fildes.

DIAGNOSTICS    [Toc]    [Back]

     On	success, tcgetpgrp returns the process group ID	of the foreground
     process group associated with the specified terminal.  Otherwise, it
     returns -1	and sets errno to indicate the error.

     On	success, tcgetsid returns the session ID associated with the specified
     terminal.	Otherwise, it returns -1 and sets errno	to indicate the	error.

     On	success, cfgetispeed returns the input baud rate from the termios
     structure.

     On	success, cfgetospeed returns the output	baud rate from the termios
     structure.

     On	success, all other functions return a value of 0.  Otherwise, they
     return -1 and set errno to	indicate the error.

     All of the	functions fail if one of more of the following is true:

     EBADF	    The	fildes argument	is not a valid file descriptor.






									Page 4






termios(3t)							   termios(3t)



     ENOTTY	    The	file associated	with fildes is not a terminal.

     tcsetattr also fails if the following is true:

     EINVAL	    The	optional_actions argument is not a proper value, or an
		    attempt was	made to	change an attribute represented	in the
		    termios structure to an unsupported	value.

     tcsendbreak also fails if the following is	true:

     EINVAL	    The	device does not	support	the tcsendbreak	function.

     tcdrain also fails	if one or more of the following	is true:

     EINTR	    A signal interrupted the tcdrain function.

     EINVAL	    The	device does not	support	the tcdrain function.

     tcflush also fails	if the following is true:

     EINVAL	    The	device does not	support	the tcflush function or	the
		    queue_selector argument is not a proper value.

     tcflow also fails if the following	is true:

     EINVAL	    The	device does not	support	the tcflow function or the
		    action argument is not a proper value.

     tcgetpgrp also fails if the following is true:

     ENOTTY	    the	calling	process	does not have a	controlling terminal,
		    or fildes does not refer to	the controlling	terminal.

     tcsetpgrp also fails if the following is true:

     EINVAL	    pgid is not	a valid	process	group ID .

     ENOTTY	    the	calling	process	does not have a	controlling terminal,
		    or fildes does not refer to	the controlling	terminal, or
		    the	controlling terminal is	no longer associated with the
		    session of the calling process.

     EPERM	    pgid does not match	the process group of an	existing
		    process in the same	session	as the calling process.

     tcgetsid also fails if the	following is true:

     EACCES	    fildes is a	terminal that is not allocated to a session.







									Page 5






termios(3t)							   termios(3t)



SEE ALSO
     setsid(2),	setpgid(2), termio(7), serial(7)


									PPPPaaaaggggeeee 6666
[ Back ]
 Similar pages
Name OS Title
termiox HP-UX extended general terminal interface
termio IRIX general terminal interfaces
termios FreeBSD general terminal line discipline
termios OpenBSD general terminal line discipline
tty HP-UX controlling terminal interface
tput OpenBSD terminal capability interface
tty IRIX controlling terminal interface
clear FreeBSD terminal capability interface
tput FreeBSD terminal capability interface
clear OpenBSD terminal capability interface
Copyright © 2004-2005 DeniX Solutions SRL
newsletter delivery service