如何调用file_operations结构里的一些函数?
static struct file_operations cs3_fops = {
owner: THIS_MODULE,
write: s3_write,
ioctl: s3_ioctl,
open: s3_open,
release: s3_close,
read: cs3_read,
};
各个函数体都写了,insmod()和rmmod()也写好
模块以经插入进内核了
mknod创建一个设备文件节点也搞好了(假如/dev/etc/s3)
我看到许多书上的测试程序,就用一个
fd=open(s3,O_RDWR)
打开这个设备文件
用
read(s3_fd,buf,256);
来测试这个驱动
我想知道这个file_operations结构体里的比如open,read,ioctl 等等一些函数体是如何调用的?测试程序里也没用到这些函数吧
[ 本帖最后由 dqstar 于 2008-4-22 15:59 编辑 ]
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(4)
file_operations结构体是设备驱动程序的重要部分,其中的函数会在应用程序进行linux中的函数open()、read()、write()等系统调用时最终被调用的,所以就把驱动和内核联系起来了
在应用程序里面调用open/write 系统就自动调用这驱动程序file_oprerations结构体里面的open/write了?
应用程序程序里面的open/write本身不是有定义的吗
用户空间的read、write---linux系统调用---间接调用设备驱动程序中file_operations结构中的函数
整个调用过程是这样一个顺序的,不知道能否明白?
好像 点明白了,谢谢各位