Вопрос по c++, linux – Чтение последовательного порта Linux - можно ли изменить размер входного буфера?

9

Я пишу приложение на Ubuntu Linux на C ++ для чтения данных с последовательного порта. Он работает успешно с помощью моего кода вызоваselect() а потомioctl(fd,FIONREAD,&bytes_avail) чтобы узнать, сколько байтов доступно, прежде чем, наконец, получить данные, используяread().

Мой вопрос таков: каждый разselect возвращается с данными, число доступных байтов сообщается как 8. Я предполагаю, что это размер буфера, установленный где-то, и что select возвращает уведомление пользователю, когда этот буфер заполнен.

Я новичок в Linux как разработчик (но не новичок в C ++), и я попытался (безуспешно) исследовать, возможно ли изменить размер этого буфера, или даже если мои предположения верны. В моем приложении синхронизация имеет решающее значение, и я должен быть предупрежден всякий раз, когда в буфере чтения появляется новый байт. Возможно ли это, не углубляясь в код ядра?

Error: User Rate Limit Exceeded Rhexis
Error: User Rate Limit Exceeded Rhexis
Error: User Rate Limit Exceeded mathematician1975

Ваш Ответ

2   ответа
4

TIOCSSERIAL

Error: User Rate Limit ExceededTIOCSSERIALError: User Rate Limit ExceededTIOCSSERIALError: User Rate Limit ExceededioctlError: User Rate Limit Exceeded
Error: User Rate Limit Exceeded mathematician1975
Error: User Rate Limit Exceeded
Error: User Rate Limit Exceeded mathematician1975
Error: User Rate Limit Exceeded
0

Error: User Rate Limit Exceeded

Похожие вопросы