surpassgood 发表于 2013-06-14 21:33

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-14 21:40

本帖最后由 Fleurer 于 2013-06-15 22:09 编辑

一个inode可能有多个file(硬连接)
struct file是内核中打开的文件的表示
每个进程有自己的文件句柄表,每条句柄指向一个struct file,struct file可能对应多个文件句柄
C标准库的FILE是用户态对文件句柄、文件路径等东西的一个封装

amarant 发表于 2013-06-15 21:05

可以这么理解,inode是在储存设备(如硬盘)上真实存在的,file是在内存上对文件的表述

hmsghnh 发表于 2013-06-17 11:54

file面向上层应用, inode 主要给底层驱动使用。

haohuanfei 发表于 2013-06-19 01:24

inode在内存中也有表示

kiongf 发表于 2013-06-29 17:08



    你的进程打开一个文件 就分配一个file object,应用层所说的文件偏移表就是它了,最主要提供进程处理文件的偏移量. 你打开多少个文件就有多少个file object.而inode才是文件的本质.包含了文件的所有属性除了文件名.

zouyccq 发表于 2013-07-01 16:18

文件系统,一个文件必对应一个inode;file表示程序打开的文件吧。

个人浅见。

beyondfly 发表于 2014-05-06 20:38

inode是存在于内存和磁盘上,而file只存在于内存中,只有在打开文件时,才有file这个结构体
页: [1]
查看完整版本: inode 和file *的区别