异步通知Fasync

异步通知:当驱动程序可读写时,给应用程序发送一个信号SIGIO,应用程序执行信号处理程序。

应用程序如何使用异步通知机制
fcntl(F_SETOWN) // 设置调用进程对描述符的拥有关系,内核知道往哪个进程发送异步信号。
fcntl(F_SETFL)  // 设置 O_ASYNC标志。导致fasync()驱动方法调用
sigaction()  //注册SIGIO处理函数

驱动程序如何使用异步通知
fasync()
{
  fasync_helper();
}

interrupt_handler()
{
  kill_fasync(SIGIO,POLL_IN或POLL_OUT) ;发送 SIGIO给对应进程
}

如果异步通知要处理多个设备上来的异步事件时,需要借助select等机制。

posted @ 2020-12-03 21:46  bobfly1984  阅读(137)  评论(0编辑  收藏  举报