Skip site navigation (1)Skip section navigation (2)

FreeBSD Manual Pages


home | help
tcsetattr(3C)		 Standard C Library Functions		 tcsetattr(3C)

       tcsetattr - set the parameters associated with the terminal

       #include	<termios.h>

       int  tcsetattr(int  fildes,  int	optional_actions, const	struct termios

       The tcsetattr() function	sets the parameters associated with the	termi-
       nal  referred  to  by the open file descriptor fildes (an open file de-
       scriptor	associated with	a terminal) from the  termios  structure  (see
       termio(7I)) referenced by termios_p as follows:

	  o  If	 optional_actions  is  TCSANOW,	 the change will occur immedi-

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

	  o  If	optional_actions is TCSAFLUSH, the change will occur after all
	     output written to fildes is transmitted, and all input so far re-
	     ceived but	not read will be discarded before the change is	made.

       If the output baud rate stored in the termios structure pointed	to  by
       termios_p  is  the  zero	baud rate, B0, the modem control lines will no
       longer be asserted.  Normally, this will	disconnect the line.

       If the input baud rate stored in	the termios structure  pointed	to  by
       termios_p  is  0, the input baud	rate given to the hardware will	be the
       same as the output baud rate stored in the termios structure.

       The tcsetattr() function	will return successfully if  it	 was  able  to
       perform any of the requested actions, even if some of the requested ac-
       tions could not be performed. It	will set all the attributes  that  im-
       plementation  supports  as  requested  and leave	all the	attributes not
       supported by the	implementation unchanged. If no	part  of  the  request
       can  be honoured, it will return	-1 and set errno to EINVAL. If the in-
       put and output baud rates differ	and are	a combination that is not sup-
       ported,	neither	 baud  rate  is	 changed.   A subsequent call to tcge-
       tattr(3C) will return the actual	state of the terminal device (reflect-
       ing  both  the  changes	made  and not made in the previous tcsetattr()
       call). The tcsetattr() function will  not  change  the  values  in  the
       termios structure whether or not	it actually accepts them.

       The  effect  of	tcsetattr()  is	 undefined if the value	of the termios
       structure pointed to by termios_p was not derived from the result of  a
       call  to	 tcgetattr(3C)	on  fildes;  an	application should modify only
       fields and flags	defined	by this	document between  the  call  to	 tcge-
       tattr(3C)  and  tcsetattr(), leaving all	other fields and flags unmodi-

       No actions defined by this document, other than a call  to  tcsetattr()
       or  a  close  of	the last file descriptor in the	system associated with
       this terminal device, will cause	any of the terminal attributes defined
       by this document	to change.

       Attempts	to use tcsetattr() from	a process which	is a member of a back-
       ground process group on a fildes	associated with	its controlling	termi-
       nal,  will  cause the process group to be sent a	SIGTTOU	signal.	If the
       calling process is blocking or ignoring SIGTTOU signals,	the process is
       allowed to perform the operation, and no	signal is sent.

       If  trying  to  change baud rates, applications should call tcsetattr()
       then call tcgetattr(3C) in order	to determine what baud rates were  ac-
       tually selected.

       Upon  successful	 completion,  0	is returned. Otherwise,	-1 is returned
       and errno is set	to indicate the	error.

       The tcsetattr() function	will fail if:

       EBADF The fildes	argument is not	a valid	file descriptor.

       EINTR A signal interrupted tcsettattr().

	     The optional_actions argument is not a supported value, or	an at-
	     tempt  was	made to	change an attribute represented	in the termios
	     structure to an unsupported value.

	     The file associated with fildes is	not a terminal.

       The tcsetattr() function	may fail if:

       EIO   The process group of the writing process  is  orphaned,  and  the
	     writing process is	not ignoring or	blocking SIGTTOU.

       See attributes(5) for descriptions of the following attributes:

       |      ATTRIBUTE	TYPE	     |	     ATTRIBUTE VALUE	     |
       |MT-Level		     |MT-Safe, and Async-Signal-Safe |

       cfgetispeed(3C),	tcgetattr(3C), attributes(5), termio(7I)

SunOS 5.9			  29 Dec 1996			 tcsetattr(3C)


Want to link to this manual page? Use this URL:

home | help