The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]




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

    Можно насильно сделать буферизованный ввод, размер буфера 32 и читать с помощью fread.

    Гораздо безопаснее (и переносимее) считывать всё, что пришло и складывать в свой буфер. Как наберётся 32, значит готово. Вообще не проверяя через ioctl и не надеясь, что получится прочитать всё сразу.




Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2024 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру