inode 和file *的区别
看了static int device_open(struct inode *inode,struct file *file)其中inode 和file 的区别,inode是指向文件的inode 节点,file 和c中的FILE *的指针的区别,file、FILE 、inode各存放些什么?
:handshake 本帖最后由 Fleurer 于 2013-06-15 22:09 编辑
一个inode可能有多个file(硬连接)
struct file是内核中打开的文件的表示
每个进程有自己的文件句柄表,每条句柄指向一个struct file,struct file可能对应多个文件句柄
C标准库的FILE是用户态对文件句柄、文件路径等东西的一个封装 可以这么理解,inode是在储存设备(如硬盘)上真实存在的,file是在内存上对文件的表述 file面向上层应用, inode 主要给底层驱动使用。 inode在内存中也有表示
你的进程打开一个文件 就分配一个file object,应用层所说的文件偏移表就是它了,最主要提供进程处理文件的偏移量. 你打开多少个文件就有多少个file object.而inode才是文件的本质.包含了文件的所有属性除了文件名.
文件系统,一个文件必对应一个inode;file表示程序打开的文件吧。
个人浅见。 inode是存在于内存和磁盘上,而file只存在于内存中,只有在打开文件时,才有file这个结构体
页:
[1]