我正在从 Linux 下的虚拟串口读取数据(连接的设备是 xbee 模块)
目前,读取是通过检查端口缓冲区的线程完成的。但是在很多设备的情况下,这并不好,因为一个端口上的数据可能每毫秒出现一次,另一个端口每秒出现一次,因此它成为 CPU 的负担。
我想知道是否有类似中断的东西,只有在新数据可用时才会触发事件(我知道这个主体适用于微控制器)。
如何在 C++ 中做到这一点?
我不知道如何使用这些信息,因为我缺乏知识。如果我有这样的事情:
while(1){
int n= PollComport(comport_number, buf, 4095);
if(n>0){
//make somemthing with the new data
}
}
我想删除while循环。我在哪里以及如何使用 epoll_wait?