免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 7099 | 回复: 4
打印 上一主题 下一主题

ioctl系统调用如何和底层的实际函数关联的. [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2010-09-03 22:20 |只看该作者 |倒序浏览
在应用层,我们用ioctl(fd,cmd,arg),在特定的文件系统下,这个函数就会和文件系统的 file_operation定义中的.ioctl对应的函数对应起来.
没搞清楚,他们是怎么对应起来的?
可能给解释起来有点麻烦,如果有资料/或者link,帮忙告诉声吧.

我理解的比较肤浅.
ioctl---系统调用----->文件系统---->具体的执行函数. 不清楚他们是怎么一步一步的挂接起来的?

论坛徽章:
0
2 [报告]
发表于 2010-09-04 00:06 |只看该作者
去看看内核情景分析吧,里面有

论坛徽章:
0
3 [报告]
发表于 2010-09-04 09:30 |只看该作者
本帖最后由 linyunxian 于 2010-09-04 09:49 编辑

open() 调用时,将传递进来的参数分配相应的struct inode,通过该 inode 的文件属性(设备号) ,关联到 struct file 下面的 file_operation,并返回相应的 fd。

ioctl调用时,通过传递 fd, 就能找到 file_operation 下面的 ioctl 实现了。

论坛徽章:
3
卯兔
日期:2013-08-26 22:14:57未羊
日期:2013-09-08 19:16:05未羊
日期:2014-10-23 10:34:12
4 [报告]
发表于 2010-09-04 09:56 |只看该作者
通过设备号和你捆绑的file_operations来找到你驱动里边的ioctl

论坛徽章:
36
IT运维版块每日发帖之星
日期:2016-04-10 06:20:00IT运维版块每日发帖之星
日期:2016-04-16 06:20:0015-16赛季CBA联赛之广东
日期:2016-04-16 19:59:32IT运维版块每日发帖之星
日期:2016-04-18 06:20:00IT运维版块每日发帖之星
日期:2016-04-19 06:20:00每日论坛发贴之星
日期:2016-04-19 06:20:00IT运维版块每日发帖之星
日期:2016-04-25 06:20:00IT运维版块每日发帖之星
日期:2016-05-06 06:20:00IT运维版块每日发帖之星
日期:2016-05-08 06:20:00IT运维版块每日发帖之星
日期:2016-05-13 06:20:00IT运维版块每日发帖之星
日期:2016-05-28 06:20:00每日论坛发贴之星
日期:2016-05-28 06:20:00
5 [报告]
发表于 2010-09-04 10:12 |只看该作者
嗯,通过open把 fd给绑定好了,以后的操作都是根据 fd 进行的。
我这里有一篇文章,LZ可以参考一下。
LDD3之scull--从open系统调用到scull_open函数调用流程分析

http://linux.chinaunix.net/bbs/viewthread.php?tid=1047488
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP