tcdrain()

Ожидать полного завершения передачи выходных данных

Прототип:

#include <termios.h>
int tcdrain( int fildes );

Аргументы:

fildes
Файловый дескриптор, связанный с устройством, которое необходимо ожидать.

Библиотека:

libc

Описание:

Функция tcdrain() ожидает, пока все выходные данные не будут физически переданы на устройство, связанное с fildes, или пока не будет получен сигнал.

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

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

Коды ошибок:

EBADF
Некорректный аргумент fildes.
EINTR
Операция прервана сигналом.
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 );
write( fildes, "ATH", 3 );
/* Wait for data to transmit before returning */
tcdrain( fildes );
close( fildes );
return (EXIT_SUCCESS);
}

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

POSIX 1003.1

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

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

write()




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