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

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

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

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

9
задан Rafał Rawicki 25 June 2012 в 18:04
поделиться