open release

1、open,open提供给驱动程序初始化的能力。作用:

  1、检查设备特定错误。

  2、如果是首次打开设备则对设备初始化。

  3、如果有必要,更新f_op指针

  4、分配并填写置于file->private_date里的数据结构。

  int (*open) (struct inode *inode, struct file *filep)

2、release方法

  1、释放open分配并填写置于file->private_date里的数据结构

  2、最后一次关闭操作时关闭设备。

  int scull_release(struct inode *inode, struct file *filep)

当open和close的次数不一样的时候,怎么判断?

  内核对么个file结构维护其被使用多少次的计数器,只有file中的计数器归为0的时候才会调用close执行release方法,保证每次open只有一次close。

原文地址:https://www.cnblogs.com/hxu7373/p/3491797.html