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 immediately.

	 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().

       EINVAL	       The optional_actions argument is	not a supported	value,
		       or an attempt was made to change	 an  attribute	repre-
		       sented  in  the	termios	 structure  to	an unsupported

       ENOTTY	       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

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

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

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

SunOS 5.10			  14 Aug 2002			 tcsetattr(3C)


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

home | help