LDD高级字符驱动程序操作-异步通知

异步通知:

1,作用:对一个文件描述符能够进行无阻塞操作的时候,发送异步通知到想要的进程,如果为多个文件由于无法辨识某个文件标识符,所以需要使用poll , select ,epoll,所以异步通知是poll,select,epoll的补充技术;

2,异步通知:linux内核实现,通过异步通知标志位设置是否发送异步通知,FASYNC;

  a,当设置文件描述符的异步通知位的时候内核会调用文件描述符对应的模块的异步通知方法fasync(struct file *filp, /*?????*/);设置异步通知,fasync是作为文件描述对应模块的file_operations 异步通知函数指针分量被内核调用的;

  b,当某一操作能够无阻塞执行的时候,文件描述符对应模块会发送异步通知SIGIO给owner进程做相应的无阻塞操作,对于发送操作为;kill_fasync(/*?????*/);

  c,当文件描述符对应模块不使用异步通知时,一定要在release file_operations release函数指针分量对应函数中将其对异步通知的设置删除,也及时从异步通知队列中删除;



3,用户空间:a,设置文件描述符的owner进程pid

                          b,设置异步通知标志位;

                          c,设置异步通知处理函数,void (*signal(int , void (*sig_handle)(int)))(int);

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值