tcsetattr(3) Library Functions Manual tcsetattr(3) NAME tcgetattr, tcsetattr - get and set terminal attributes LIBRARY Standard C library (libc, -lc) SYNOPSIS #include int tcgetattr(int fd, struct termios *termios_p); int tcsetattr(int fd, int optional_actions, const struct termios *termios_p); DESCRIPTION tcgetattr() gets the parameters associated with the object referred by fd, 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. tcsetattr() sets the parameters associated with the terminal (unless support is required from the underlying hardware that is not available) from the termios structure referred to by termios_p. optional_actions specifies when the changes take effect: TCSANOW the change occurs immediately. TCSADRAIN the change occurs after all output written to fd has been transmitted. This option should be used when changing parameters that affect output. TCSAFLUSH the change occurs after all output written to the object referred by fd has been transmitted, and all input that has been received but not read will be discarded before the change is made. RETURN VALUE 0 on success. -1 on failure and set errno to indicate the error. ATTRIBUTES For an explanation of the terms used in this section, see attributes(7). +--------------------------------------------+---------------+---------+ |Interface | Attribute | Value | +--------------------------------------------+---------------+---------+ |tcgetattr (), tcsetattr () | Thread safety | MT-Safe | +--------------------------------------------+---------------+---------+ STANDARDS POSIX.1-2008. HISTORY POSIX.1-2001. CAVEATS tcsetattr() returns success if any of the requested changes could be successfully carried out. Therefore, when making multiple changes, it may be necessary to follow this call with a further call to tcgetattr() to check that all changes have been performed successfully. SEE ALSO termios(3type), termios(7) Linux man-pages 6.19 2026-07-02 tcsetattr(3)