che180 发表于 2011-12-23 09:11

请教:linux内核代码file_operation结构体问题!

本帖最后由 che180 于 2011-12-23 11:37 编辑

file_operation ops=
{
.....
.prob=xxx,       //结构体变量初始化的时候有这样的用法?谭浩强的书都翻烂了也没找到。
......
}
file_operation
{
....
(*prob)(platform *),//参数(paltform *)这是什么用法?不是用platform定义一个参数吗?为什么只有*没有变量? 现在谭浩强的书都翻成渣了也没找到。
...
}

仙凡居士 发表于 2011-12-23 16:30

关于第一个问题参考:http://bbs.chinaunix.net/thread-3566578-1-1.html

(*probe)(struct platform_device *pdev) 吧?定义一个函数指针,platform是linux驱动中的一种虚拟总线机制,对应的有platform_device和platform_driver。函数声明时可以只指定形参数据类型而不用指明形参变量名,所以上述声明为(*probe)(struct platform_device *)也是可以的

che180 发表于 2011-12-23 17:12

谢谢,第一个问题明白了!

che180 发表于 2011-12-23 17:15

谢谢,明白,两个问题都解决了!

zc5524528 发表于 2011-12-23 17:15

file_operation
{
....
(*prob)(platform *),
...
}

兄弟, 看下函数指针,你就懂了。
见多就不怪了

kangear 发表于 2012-10-31 09:32

:wink:我也明白了,谢谢各位!!!

xinp123 发表于 2012-11-08 17:30

谭大爷你好,谭大爷再见!

file_operation{
                  ....
}

你用到哪个操作,就给那个操作赋值,赋的值等于你的处理函数名.
页: [1]
查看完整版本: 请教:linux内核代码file_operation结构体问题!