我需要编写一个能够在串口和can总线端口上读写的驱动程序。
串行端口是通过sigaction()
和事件处理程序实现的。当我尝试为 can 总线实现相同的功能时,将只通知最后一个事件处理程序,因为可以只分配给 sigaction()
的事件句柄。
有没有其他可能解决这个问题?
最佳答案
您的信号处理程序需要确定发出信号的原因并采取适当的行动。您可能想要使用 sigprocmask() 阻止更多信号,因为您可能会在信号处理程序中被中断,检查串行端口和 can 总线上是否有任何数据可用,将其复制或设置您需要的任何标志到,然后在信号处理程序的末尾解锁信号。
关于c - 使用 sigaction() 进行 I/O 处理,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35547670/