Odczyt portu szeregowego Linux - czy mogę zmienić rozmiar bufora wejściowego?

Piszę aplikację na Ubuntu Linux w C ++, aby odczytać dane z portu szeregowego. Działa z powodzeniem przez moje wywołanie koduselect() i wtedyioctl(fd,FIONREAD,&bytes_avail) aby dowiedzieć się, ile bajtów jest dostępnych przed ostatecznym wykorzystaniem danychread().

Moje pytanie brzmi: za każdym razemselect zwraca dane, liczba dostępnych bajtów jest podawana jako 8. Zgaduję, że jest to rozmiar bufora ustawiony gdzieś i że zaznaczenie zwraca użytkownikowi powiadomienie, gdy bufor ten jest pełny.

Jestem nowym użytkownikiem Linuksa jako programista (ale nie nowy w C ++) i próbowałem (bez powodzenia) badać, czy można zmienić rozmiar tego bufora, a nawet czy moje założenia są prawdziwe. W mojej aplikacji czas jest krytyczny i muszę zostać ostrzeżony, gdy w buforze odczytu pojawi się nowy bajt. Czy to możliwe, bez zagłębiania się w kod jądra?

questionAnswers(2)

yourAnswerToTheQuestion