作业帮 > 综合 > 作业

filp->private_data是什么意思

来源:学生作业帮 编辑:作业帮 分类:综合作业 时间:2024/05/26 00:11:53
filp->private_data是什么意思
给完整代码,不要只给这么一段.这很难看懂.
再问: struct scull_dev *dev; /* device information */ dev = container_of(inode->i_cdev, struct scull_dev, cdev); filp->private_data = dev; /* for other methods */ 一
再答: ldd3中说到open应完成以下工作: 1.检查设备特定的错误(注入设备未就绪或类似的硬件问题)。 2.如果设备是首次打开,则对其进行初始化。 3.如有必要,更新f_op指针。 4.分配并填写置于filp->private_data里的数据结构。 关于第4点,一直心存余虑,不明白是什么意思,看网上写的很多其他的例子,也没有做第4点的操作。 其实ldd3上面已经在release方法里面做了说明,“并不是每个close系统调用都会引起对release方法的调用,只有真正释放设备数据结构的close才会调用release方法的调用。内核对每个file结构维护其被使用多少次的计数器。对于dup/fork等系统调用,并不会创建新的数据结构(仅由open创建,在open函数中通过申请并初始化的cdev结构,运用container_of求出包含cdev的scull_dev结构,并赋值给filp->private_data,从而分配一个新的数据结构),他们只是增加对数据结构的计数。当file结构的计数减为零时,才会调用close,执行release.” 我觉得这样设计有两个目的,一是节省系统资源,二是可以与进程的设计理念相一致。 本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/xautfengzi/archive/2011/03/10/6236315.aspx //大概你要找的这个吧、说真的,我现在都不知道你要问什么。
再问: ->这个符号c里代表什么意思
再答: 表示前面是一个指针,如结构指针,那么private_data是结构的一个成员