有点疑惑
今天看了一个i2c 驱动的代码其中文件描述符结构体是这样的:
static struct file_operations at24c02_fops = {
.owner = THIS_MODULE, /* 这是一个宏,指向编译模块时自动创建的__this_module变量 */
.read = at24c02_read,
.write = at24c02_write,
};
并没有写 open() 函数 可是应用层却使用了open()函数,那调用的应该是通用的open()函数了?
open()函数时为打开设备为read() write() 函数提供文件描述符 这是我目前掌握的,但是感觉概念还是很模糊希望能有个详细的解答 ,先谢谢了!
[解决办法]
嗯,首先说明我没有接触过i2c驱动。
通常设备驱动的open函数的功能只在初始化设备,如果驱动中一次性配置完成,并且在每次使用时并不需要任何初始化的时候可以省略该函数。
设备驱动之上还有总线驱动的open,还有系统open调用,提供文件描述符的应该与设备驱动的open木有多大关系!(猜的)