如何调用file_operations结构里的一些函数?

发布于 2022-09-19 15:56:50 字数 947 浏览 12 评论 0

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 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(4

温折酒 2022-09-26 15:56:50

file_operations结构体是设备驱动程序的重要部分,其中的函数会在应用程序进行linux中的函数open()、read()、write()等系统调用时最终被调用的,所以就把驱动和内核联系起来了

北方的韩爷 2022-09-26 15:56:50

原帖由 Wendsia 于 2008-4-22 20:59 发表
file_operations结构体是设备驱动程序的重要部分,其中的函数会在应用程序进行linux中的函数open()、read()、write()等系统调用时最终被调用的,所以就把驱动和内核联系起来了

在应用程序里面调用open/write 系统就自动调用这驱动程序file_oprerations结构体里面的open/write了?
应用程序程序里面的open/write本身不是有定义的吗

梦言归人 2022-09-26 15:56:50

用户空间的read、write---linux系统调用---间接调用设备驱动程序中file_operations结构中的函数
整个调用过程是这样一个顺序的,不知道能否明白?

风筝在阴天搁浅。 2022-09-26 15:56:50

好像 点明白了,谢谢各位

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文