file结构和inode结构

annatianmu2008 2009-01-10 05:08:34
小弟看LDD这本书时候,关于讲解file结构和inode结构区别还是有些不明白。
有句话这样说,对单个文件,可能会有许多个表示打开的文件描述符的file结构,但它们都指向单个inode结构,这句话能解释下吗?
我理解是对于一个文件,你可以多次打开,每打开一次内核就为它建立一个file结构,而因为始终是一个文件,所以只有一个inode结构?其中文件描述符是不是指文件名?
请各位高手赐教,小弟不胜感激,谢谢!!!
...全文
582 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
fishly_0 2011-05-10
  • 打赏
  • 举报
回复
看完了又有体会了,mark下。
strive1987916 2011-03-09
  • 打赏
  • 举报
回复
inode是用来在内核中表示文件的,而file在用户空间表示文件
同一个文件可以被打开很多次,对应多个file,但在内核中只用一个inode表示
tnfyj 2009-01-11
  • 打赏
  • 举报
回复
关于第一点你的理解没有错, inode结构对应的是实体文件, 而进程打开的文件可以有自己的文件结构, 其中包含该文件的操作方式(只读\只写\读写), 偏移量, 以及指向inode的指针等等, 因为每个进程打开文件后可能对文件有不同的操作方式或偏移量等等, 所以他们可以在进程表中可以有不同的文件结构, 但实际上inode指针都是指向一个inode的

file descriptor 是内核分配给你的一个整数, 因为Unix系统不区分二进制文件和文本文件,或者管道, 或者socket这些东西, 内核都把他们当做一个文件来看, 这个file descriptor 就相当于这些资源的一个代号, 好比在监狱中叫9527, 就代表一个特定的犯人一样(通常这个犯人都是周星驰演的...)
annatianmu2008 2009-01-10
  • 打赏
  • 举报
回复
哪位高手能顺便解释下file descriptor么,在此谢过了

4,436

社区成员

发帖
与我相关
我的任务
社区描述
Linux/Unix社区 内核源代码研究区
社区管理员
  • 内核源代码研究区社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧