Leitura da porta serial do Linux - posso alterar o tamanho do buffer de entrada?
Estou escrevendo um aplicativo no Ubuntu Linux em C ++ para ler dados de uma porta serial. Ele está funcionando com sucesso pelo meu código chamandoselect()
e depoisioctl(fd,FIONREAD,&bytes_avail)
para descobrir quantos bytes estão disponíveis antes de finalmente obter os dados usandoread()
.
Minha pergunta é esta: toda vezselect
retorna com dados, o número de bytes disponíveis é relatado como 8. Eu estou supondo que este é um tamanho de buffer definido em algum lugar e que selecione retorna notificação para o usuário quando este buffer está cheio.
Sou novo no Linux como desenvolvedor (mas não novo no C ++) e tentei pesquisar (sem sucesso) se é possível alterar o tamanho desse buffer ou, na verdade, se minhas suposições são verdadeiras. No meu aplicativo, o tempo é crítico e preciso ser alertado sempre que houver um novo byte no buffer de leitura. Isso é possível, sem se aprofundar no código do kernel?