当前位置:  技术问答>linux和unix

请教结构体定义--LINUX驱动程序中语句

    来源: 互联网  发布时间:2016-01-28

    本文导语:  请教下面这个结构体定义中read: device_read,一句是什么意思? struct file_operations fops =  { read: device_read, write: device_write, open: device_open, release: device_release }; | struct file_operations fops =  { read: device_read, write: devi...


请教下面这个结构体定义中read: device_read,一句是什么意思?

struct file_operations fops = 
{
read: device_read,
write: device_write,
open: device_open,
release: device_release
};

|
struct file_operations fops = 
{
read: device_read,
write: device_write,
open: device_open,
release: device_release
};

应该是给fops结构体变量的read 赋初值device_read
这应该是gcc的用法,标准c应该不支持

|
类似的还有
struct test test1=
{
           .a1=a1func,
           .a2=a2func
           ...
}

|
我怀疑是 初始化 呵呵 严重怀疑

|
各位老大,这是C的基础知识呀。
无语了,不知道有没有听过“勿在浮沙之上筑高台”?

|
只是语法问题吧!

|
gcc对标准C的扩展,<<LINUX设备驱动程序>>一书中说了相关的内容

|
意思是你在上层程序调用read(这个驱动文件打开后返回的句柄,xx,size)的时候,在驱动里面其实调用的是device_read 
我靠这么简单的问题怎么这么多人回答的千奇百怪

|

意思是你在上层程序调用read(这个驱动文件打开后返回的句柄,xx,size)的时候,在驱动里面其实调用的是device_read 
我靠这么简单的问题怎么这么多人回答的千奇百怪
==========================================
从C语法看就是:read = device_read?

============================

no,只是一种映射

|
gcc下结构体赋初值的一种语法,
标准C下一般直接struct test test1={*,*,*..},*是成员值,如device_read
是成员变量read的值 
gcc把每个值和成员变量对应起来,看的更清楚.

|
这是典型的OO-C结构, file_operations结构体里保存函数指针, 形成类似于C++中的父类.
创建一个file_operations结构, 指定函数指针的地址, 类似于继承了父类的子类.
底层调用时只管调用file_ops结构的指针, 便调用了指向的函数, 类似于多态.

详细请见LDD, 也可以看代码.

    
 
 

您可能感兴趣的文章:

  • 请教一个 shell 问题,我用下面这个 shell 语句总是失败,请教
  • 请教:system("C:\python2.4\python.exe C:\aa.py");该语句有何错误?为什么运行界面一闪就消失了并且没有运行完,请给出正确语句!
  • 请教一段shell语句的作用
  • 请教个shell编程语句的问题。
  • 请教一个很简单的语句
  • 请教SHELL语句如何获取程序的安装路径?
  • 请教一个shell语句:文件比较问题|急~~~
  • 关于Oracle中的sql语句的疑问,向大家请教。
  • 请教各位前辈,这条语句是什么意思?
  • 请教:在linux下如何为一个结构体分配空间?语句该怎么写?
  • 请教一个 shell 问题,我用下面这个 shell 语句总是失败,请教 iis7站长之家
  • 向各位前辈请教一个关于switch语句的问题,谢谢:)
  • 请教一个shell中调用sqlplus,其中sql语句中有$符号,需要转义,不知道怎么写转义才对,比较急,在线等,谢谢!
  • 小问题请教高手:try中的语句为何不执行!!!
  • 请教一条SQL语句。
  • 向高手请教import语句用法!!!
  • 请教一条Sql语句!! 在线等候!!
  • 请教!关于linux字符驱动程序
  • 请教各位大大 怎样编写LINUX触摸屏的驱动程序?
  • 菜鸟请教,应用程序如何判断驱动程序已经挂载成功
  • 请教关于linux开发驱动程序的方向
  • 请教如何安装内猫的驱动程序
  • sql server数据库有没有专门的jdbc驱动程序,若有,请教怎样获得?
  • 请教单片机驱动程序开发
  • 请教一下在驱动里怎么调用应用程序
  • 请教:修改Linux内核时,需要调用驱动程序的函数,头文件也包含了,但是编译时候说头文件找不到!
  • 请教:Linux驱动程序中的llseek函数
  • 请教:linux的驱动程序如何调用动态连接库?
  • 请教一个关于驱动测试程序的问题
  • 请教高手:如何把USB驱动程序从Linux2.4内核移植到2.6
  • 请教谁有在DOS下用程序驱动CD-ROM播放CD的资料,多谢了
  •  
    本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
    本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • 请教redhat9下如何查看系统定义的结构的帮助文档
  • 请教!net-snmp里面怎么挂载自己定义的动态链接库
  • 请教宏定义 #define TEST(s) #s 表示了什么?
  • 请教:为什么在<%!...%>内部定义的函数不能用jsp页面缺省的对象如:out,request,session,等。
  • 新手请教Qt下自定义类的使用问题?
  • 请教一个简单问题。。如果我定义了 int data; 我在程序中想得到他的地址,应该怎么做?谢谢
  • 请教一个 Linux 的宏定义问题
  • 请教一个shell里面宏定义执行问题
  • 请教一个有个EJB中自定义find的方法
  • 100分请教高手uboot段定义
  • 请教,请教,这个问题是为什么????
  • 请教本地硬盘安装问题请教本地硬盘安装问题
  • ■请教■请教redhat最基本的问题!
  • 高分请教,各位大侠,请教一个问题,理论高手请进??谢谢
  • 请教Linux下pgadmin3-1.0.2的编译和安装!!高分请教!
  • 各位大虾,请教装了REDHAT9操作系统后,启动时无法引导到LINUX,请教该如何解决啊
  • 请教,请教,,,一定要看!!一定要看!!
  • 请教高手,小弟打印width=1500,height=600(A3纸)的Applet,在预览中是该区域是黑的,打印出来也是黑的,请教高手解决一下
  • :请教高手,小弟打印width=1500,height=600(A3纸)的Applet,在预览中是该区域是黑的,打印出来也是黑的,请教高手解决一下
  • 请教象我这样的硬盘应如何安装Linux,我昨天试装了,但有问题。(老问题了,也看了前面的帖子,但还是来请教,请多指教)
  • 请教这种循环的执行过程
  • 请教两个redhat9问题
  • 请教如何在指定目录下查找包含指定文字的文件
  • 请教局域网中如何通过ip地址得到主机名
  • 请教kdevelop的问题
  • 请教linux 下的adsl拨号问题.
  • 请教,如何用虚拟订机安装liux
  • 【请教】LINUX 下SNMP的MIB开发
  • 请教一个opengl的问题
  • 请教unix常用命令命令问题


  • 站内导航:


    特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

    ©2012-2021,,E-mail:www_#163.com(请将#改为@)

    浙ICP备11055608号-3