Linux驱动函数中,release究竟有什么作用?
1个回答
展开全部
不知道你说的什么驱动,不管是哪种,都会有一个operations的结构体,像字符设备驱动中有个:
struct file_operations test_ops = {
.owner = THIS_MODULE,
.open = test_open,
.release = test_release,
.read = test_read,
.write = test_write,
.ioctl = test_ioctl,
};
上面是它的用法,之后分别实现test_open.....等函数即可,这里的作用也很明显,对于应用层,当使用open函数打开这个设备时,最终调用的就是test_open函数,用户层的read函数最终调用的就是test_read函数,当然对于块设备之类的也就不需要这个open函数了(不是依靠open操作的)。
就不一一的讲了,release对应的就是close函数,对某些设备,当用户使用close时,最终会调用test_release函数,实际上open和release不需要具体实现什么,一般会作为一个计数,就是有多少人次访问该设备,也可以通过open和release实现同一时间只能有一个用户访问该设备等等。
struct file_operations test_ops = {
.owner = THIS_MODULE,
.open = test_open,
.release = test_release,
.read = test_read,
.write = test_write,
.ioctl = test_ioctl,
};
上面是它的用法,之后分别实现test_open.....等函数即可,这里的作用也很明显,对于应用层,当使用open函数打开这个设备时,最终调用的就是test_open函数,用户层的read函数最终调用的就是test_read函数,当然对于块设备之类的也就不需要这个open函数了(不是依靠open操作的)。
就不一一的讲了,release对应的就是close函数,对某些设备,当用户使用close时,最终会调用test_release函数,实际上open和release不需要具体实现什么,一般会作为一个计数,就是有多少人次访问该设备,也可以通过open和release实现同一时间只能有一个用户访问该设备等等。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询