我正在用 C++ 在 Ubuntu Linux 上编写一个应用程序来从串行端口读取数据。它通过我的代码调用成功运行select()
,然后ioctl(fd,FIONREAD,&bytes_avail)
在最终使用read()
.
我的问题是:每次select
返回数据时,可用字节数报告为 8。我猜这是在某处设置的缓冲区大小,当该缓冲区已满时,select 会向用户返回通知。
作为开发人员,我是 Linux 的新手(但对 C++ 并不陌生),我曾尝试研究(但没有成功)是否可以更改此缓冲区的大小,或者我的假设是否正确。在我的应用程序中,时间很关键,只要读取缓冲区上有新字节,我就需要收到警报。在不深入研究内核代码的情况下,这可能吗?