release函数
release函数的作用正好与open相反,有时候release函数的实现被称为device_close,而不是device_release。但无论那种形式,这个设备方法都应该完成如下任务:
a、释放open分配的,保存在file->private_da
b、在最后一次关闭操作时关闭设备。
relese函数由close系统调用引起,但并不是每一次close系统调用都会引起release函数的调用。只有那些真正释放设备数据结构的close系统调用才会引起release函数的调用。因为Linux内核为每个 file结构体维护其被引用多少次的计数器,只有当file结构体的计数器归0时,close系统调用才会引用release函数,这只在删除这个结构时才会发生,因此每次open驱动程序都只会看到一次对应的一次release调用。
debug:
引用计数: filp->f_count
调用ioctl 函数也会使 filp->f_count 增加。
本文详细介绍了Linux内核中release函数的作用及其与open函数的关系。解释了release函数如何在最后一次关闭操作时释放资源,并且强调了它仅在file结构体的引用计数归零时被调用的特点。
1万+

被折叠的 条评论
为什么被折叠?



