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

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

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

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

Ответы на вопрос(2)

Ваш ответ на вопрос