tcflush - flush non-transmitted output data, non-read input data, or both
int tcflush(int fildes, int queue_selector);
Upon successful completion, tcflush() shall discard data written to the object referred to by fildes (an open file descriptor associated with a terminal) but not transmitted, or data received but not read, depending on the value of queue_selector:
If queue_selector is TCIFLUSH, it shall flush data received but not read.
If queue_selector is TCOFLUSH, it shall flush data written but not transmitted.
If queue_selector is TCIOFLUSH, it shall flush both data received but not read and data written but not transmitted.
Attempts to use tcflush() from a process which is a member of a background process group on a fildes associated with its controlling terminal shall cause the process group to be sent a SIGTTOU signal. If the calling process is blocking or ignoring SIGTTOU signals, the process shall be allowed to perform the operation, and no signal is sent.
Upon successful completion, 0 shall be returned. Otherwise, -1 shall be returned and errno set to indicate the error.
The tcflush() function shall fail if:
- The fildes argument is not a valid file descriptor.
- The queue_selector argument is not a supported value.
- The file associated with fildes is not a terminal.
The tcflush() function may fail if:
- The process group of the writing process is orphaned, and the writing process is not ignoring or blocking SIGTTOU.
XBD General Terminal Interface , <termios.h>
First released in Issue 3. Included for alignment with the POSIX.1-1988 standard.
The Open Group Corrigendum U035/1 is applied. In the ERRORS and APPLICATION USAGE sections, references to tcflow() are replaced with tcflush().
The following new requirements on POSIX implementations derive from alignment with the Single UNIX Specification:
In the DESCRIPTION, the final paragraph is no longer conditional on _POSIX_JOB_CONTROL. This is a FIPS requirement.
The [EIO] error is added.
return to top of page