Chinaunix首页 | 论坛 | 博客
  • 博客访问: 191098
  • 博文数量: 76
  • 博客积分: 2510
  • 博客等级: 少校
  • 技术积分: 831
  • 用 户 组: 普通用户
  • 注册时间: 2007-12-31 00:52
文章分类

全部博文(76)

文章存档

2010年(58)

2009年(18)

我的朋友

分类:

2010-03-26 13:57:27


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) |
0

上一篇:daemon

下一篇:内核栈

给主人留下些什么吧!~~