tcflush()

Очистить входной и/или выходной поток

Прототип:

#include <termios.h>
int tcflush( int fildes,
int queue_selector );

Аргументы:

fildes
Файловый дескриптор, связанный с потоком данных, над которым необходимо выполнить операцию.
queue_selector
Поток или потоки, которые необходимо очистить. По крайней мере следующие значения queue_selector определены в <termios.h>:
TCIFLUSH
Отклонить все принятые, но ещё не прочитанные данные, на устройстве, связанном с fildes.
TCOFLUSH
Отклонить все записанные, но ещё не отправленные данные, на устройстве, связанном с fildes.
TCIOFLUSH
Отклонить все записанные, но ещё не отправленные данные, также как и все принятые, но ещё не прочитанные данные, на устройстве, связанном с fildes.

Библиотека:

libc

Описание:

Функция tcflush() очищает входной поток, выходной поток или оба, в зависимости от значения аргумента queue_selector.

Возвращаемое значение:

0
Успешное завершение.
-1
Возникла ошибка. Код ошибки записан в errno.

Коды ошибок:

EBADF
Некорректный аргумент fildes.
EINVAL
Некорректный аргумент queue_selector.
ENOSYS
Менеджер ресурсов, связанный с fildes, не поддерживает этот вызов.
ENOTTY
Аргумент fildes не относится к терминальному устройству.

Примеры:

#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);
}

Классификация:

POSIX 1003.1

Безопасность использования
Точка остановки потока
Нет
Обработчик прерываний
Нет
Обработчик сигналов
Да
В потоке
Да

Тематические ссылки:

tcdrain(), tcflow(), tcsendbreak()




Предыдущий раздел: Описание API системной библиотеки