The OpenNET Project / Index page

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

форумы  помощь  поиск  регистрация  майллист  вход/выход  слежка  RSS
"COM-порт: read читает меньше, чем возвращает ioctl FIONREAD"
Вариант для распечатки  
Пред. тема | След. тема 
Форумы Программирование под UNIX (Public)
Изначальное сообщение [ Отслеживать ]

"COM-порт: read читает меньше, чем возвращает ioctl FIONREAD"  
Сообщение от unixcoder on 18-Мрт-09, 19:17 
Программирую COM-порты. Перед чтением проверяю с помощью ioctl количество данных в буфере порта, а затем считываю всё. В порт приходит массив данных в 32 байта, ioctl возращает 32.
Считываю 32, но read читает почему-то по 8. Может какието хитрые настройки нужны? Подскажите пожалуйста.
Высказать мнение | Ответить | Правка | Cообщить модератору

 Оглавление

Сообщения по теме [Сортировка по времени | RSS]


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

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

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

Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

Архив | Удалить

Индекс форумов | Темы | Пред. тема | След. тема
Оцените тред (1=ужас, 5=супер)? [ 1 | 2 | 3 | 4 | 5 ] [Рекомендовать для помещения в FAQ]




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

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