Linux应用程序对异步通知的处理
一. 简介
前面几篇文章学习了 Linux异步通知机制,以及Linux驱动对异步通知部分涉及的内容。文章地址如下:
本文来学习Linux应用程序对异步通知的处理。
二. Linux应用程序对异步通知的处理
1. 应用程序对异步通知的处理思路
异步通知机制就是:当驱动程序可以 访问时,会主动告诉应用程序。驱动可以通过主动向应用程序发送信号的方式,来报告自己可以访问了,应用程序获取到信号以后,就可以从驱动设备中读取或者写入数据了。
(1) 首先,应用程序需要 注册信号处理函数(通过 signal()函数注册),并实现信号处理函数(旨在当有某个信号报告自己时,会进入信号处理函数执行)。
(2) 其次,驱动如何知道要将某个信号报告给哪个应用程序?
这里应用程序就需要将自己的进程号PID告诉 内核。
(3) 最后,应用程序要开启异步通知。
2. 应用程序对异步通知的处理步骤
应用程序对异步通知的处理包括以下三步:
(1) 注册信号处理函数
(2) 将本应用程序的进程号告诉给内核
fcntl(fd, F_SETOWN, getpid())
(3) 开启异步通知
使用如下两行程序开启异步通知:
flags = fcntl(fd, F_GETFL); /* 获取文件状态 */
fcntl(fd, F_SETFL, flags | FASYNC); /* 开启当前进程异步通知功能 */
关于 应用程序对异步通知的处理学习这里,接下来通过一个实验来学习驱动与应用程序对异步通知的处理。
原文地址:https://blog.csdn.net/wojiaxiaohuang2014/article/details/136665983
免责声明:本站文章内容转载自网络资源,如本站内容侵犯了原著者的合法权益,可联系本站删除。更多内容请关注自学内容网(zxcms.com)!