- COM-порт: read читает меньше, чем возвращает ioctl FIONREAD, ACCA, 00:53 , 19-Мрт-09 (1)
>Программирую COM-порты. Перед чтением проверяю с помощью ioctl количество данных в буфере >порта, а затем считываю всё. В порт приходит массив данных в >32 байта, ioctl возращает 32. >Считываю 32, но read читает почему-то по 8. Может какието хитрые настройки >нужны? Подскажите пожалуйста. Можно насильно сделать буферизованный ввод, размер буфера 32 и читать с помощью fread. Гораздо безопаснее (и переносимее) считывать всё, что пришло и складывать в свой буфер. Как наберётся 32, значит готово. Вообще не проверяя через ioctl и не надеясь, что получится прочитать всё сразу.
|