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实现同一时间只能有一个用户访问该设备等等。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)