Lectura de puerto serie de Linux: ¿puedo cambiar el tamaño del búfer de entrada?

Estoy escribiendo una aplicación en Ubuntu Linux en C ++ para leer datos desde un puerto serie. Está funcionando correctamente con mi código de llamadaselect() y entoncesioctl(fd,FIONREAD,&bytes_avail) para averiguar cuántos bytes están disponibles antes de obtener finalmente los datos usandoread().

Mi pregunta es esta: cada vezselect devuelve con datos, el número de bytes disponibles se informa como 8. Supongo que este es un tamaño de búfer establecido en algún lugar y que seleccionar devuelve una notificación al usuario cuando este búfer está lleno.

Soy nuevo en Linux como desarrollador (pero no nuevo en C ++) y he tratado de investigar (sin éxito) si es posible cambiar el tamaño de este búfer, o incluso si mis suposiciones son ciertas. En mi aplicación, el tiempo es crítico y necesito que me avisen cuando haya un nuevo byte en el búfer de lectura. ¿Es esto posible, sin profundizar en el código del núcleo?

Respuestas a la pregunta(2)

Su respuesta a la pregunta