获取一个串行端口。串行端口可以用ioctl
调用TIOCMIWAIT
以等待信号改变。但是,如果串行端口以非阻塞方式打开,那么当CTS之类的信号线发生变化时,如何使用select
,poll
或epoll
之类的东西打破事件循环?假设串行端口也大量用于读写。生成另一个线程似乎是一个错误的选择。
在Windows上,OVERLAPPED
IO可以完美解决此问题。
我对上面列出的特定情况感兴趣,而且对如何编写需要将中断传递给用户空间的设备驱动程序感兴趣。
答案 0 :(得分:0)
我认为您可能希望使用pselect()进行研究。与select()相同,但是它还允许您设置信号掩码。有关如何使用pselect的示例,请参见此处的顶部答案: