Flush the input and/or output stream
Synopsis:
#include <termios.h>
int tcflush( int fildes,
int queue_selector );
Arguments:
- fildes
- A file descriptor that's associated with the data stream that you want to
perform the operation on.
- queue_selector
- The stream or streams that you want to flush.
At least the following values for
queue_selector are defined in <termios.h>:
- TCIFLUSH — discard all data that's received,
but not yet read, on the device associated with fildes.
- TCOFLUSH —
discard all data that's written, but not yet transmitted, on
the device associated with fildes.
- TCIOFLUSH —
discard all data that's written, but not yet transmitted,
as well as all data that's received, but not yet read, on
the device associated with fildes.
Library:
libc
Use the -l c option to
qcc
to link against this library.
This library is usually included automatically.
Description:
The tcflush() function flushes the input stream, the output
stream, or both, depending on the value of the argument queue_selector.
Returns:
- 0
- Success.
- -1
- An error occurred
(errno is set).
Errors:
- EBADF
- Invalid fildes argument.
- EINVAL
- Invalid queue_selector argument.
- ENOSYS
- The resource manager associated with fildes doesn't support this call.
- ENOTTY
- The argument fildes doesn't refer to a terminal device.
Examples:
#include <termios.h>
#include <fcntl.h>
#include <unistd.h>
#include <stdlib.h>
int main( void )
{
int fildes;
fildes = open( "/dev/ser1", O_RDWR );
/* Throw away all input data */
tcflush( fildes, TCIFLUSH );
close( fildes );
return EXIT_SUCCESS;
}
Classification:
POSIX 1003.1
Safety: |
|
Cancellation point |
No |
Interrupt handler |
No |
Signal handler |
Yes |
Thread |
Yes |