inode, file and file_operations
struct file_operation就是把系统调用和驱动程序关联起来的关键数据结构。这个结构的每一个成员都对应着一个系统调用。内枋读取file_operation中相应的函数指针,接着把控制权转交给函数,从而完成了Linux设备驱动程序的工作。 每一个打开的文件(用struct file表示)都与自己的struct file_operation联系在一起
struct file在内核中代表一个打开的文件,与C库中的FILE完全不一样,FILE只出现在用户程序中,而file只出现内核里,file在执行file_operation中的open操作时被创建,并由file_operation中的releas释放。
struct inode被内核用来代表一个文件,注意和struct file的区别,struct inode是代表文件,struct file是代表打开的文件。也就是说,对于一个文件,可以用多个struct file 结构来表示多个打开的文件描述符,但所有的文件描述符都指向该文件的struct inode。
阅读(895) | 评论(0) | 转发(0) |