1 (09.10.2011 14:31:02 отредактировано Peter)

Здравствуйте!

Есть ли возможность узнать, сколько байтов находится в буфере COM-порта,
не вызывая read и не теряя этих байтов? Вопрос вызван тем, что порт ведёт
себя непонятным образом. Правда, это не аппаратный COM-порт, это
USB-переходник фирмы MOXA.

Также есть ли где-нибудь полное описание всех команд ioctl?
В "man ioctl_list" говорится, что это описание очень неполное.
Например, у меня давно есть программа, использующая
ioctl(fd, KDMKTONE, n), но я не помню, где я нашёл описание
этой команды. В Интернете оно есть, м.б., есть и полное описание?


Есть вызов poll, но, как я понял, с его помощью можно установить только
факт прихода байтов, а мне надо именно количество, чтобы считать, когда
придёт весь пакет.

Как получить количество, пока не нашёл, но можно опрашивать порт
вызовм poll до тех пор, пока там не появятся байты, а затем запустить
read, но при этом в termios VMIN должно быть установлено в количество
байтов в пакете, а VTIME должно быть не 0.

Пётр.

Пётр.