网站大量收购独家精品文档,联系QQ:2885784924

c基于linux系统开发系列-06内核数据结构.pptx

c基于linux系统开发系列-06内核数据结构.pptx

  1. 1、本文档共9页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多

学云签约讲师魏娟

学习c++开发基于Linux系统开发系列

—第6讲文件的内核数据结构

上节回顾

文件基本操作简介

文件操作基本原理

文件与文件描述符

文件打开操作

文件读写操作

读写设备文件

读写设备文件实践

读写文件与文件内核数据结构

本节目标

读写设备文件实践

向某一终端发消息

dev/pts/n

向所有终端广播消息

dev/pts/0,1,2…n

读写文件与文件的内核数据结构

读写文件

分别打开两次文件

分别两次向文件中写内容

文件内核数据结构分析

在每个程序的进程空间中,都有一个表项区的空间

表项区空间中,保存了许多进程要用到的表

文件描述符表时常用的一个,进程所打开的文件的文件描述符都会保存到文件描述符表中

文件描述符是私有的,存在进程空间中,只能在本进程中能用

每个文件描述符对应着一个文件表,文件描述符是文件表的编号

读写文件与文件的内核数据结构

系统内核会为所有打开的文件维护一张文件表,文件表不在进程空间中,由系统内核维护

只要在程序中被打开了两次,那么就会有两个文件描述符和两个文件表存在

文件表的数据信息包括

文件状态

文件类型、访问权限、同步……

当前文件的位移量

文件指针的位置,当前该文件的位移,用于确定读写文件的位置

指向V节点的指针

指向V节点表的指针

在Unix系统中,每个文件都对应一个唯一的V节点结构

V节点记录的是硬盘上文件信息

一个文件只唯一地对应一个V节点

读写文件与文件的内核数据结构

一个文件每被打开一次,内核都会创建一个文件表,但V节点只有唯一的一个

文件表与V节点的关系是*:1关系

文件内核数据结构图

fd标志

0

1

2

3

4

文件状态标志

当前位移量

V节点指针

文件状态标志

当前位移量

V节点指针

V节点信息

I节点信息

当前文件长度

V节点信息

I节点信息

当前文件长度

没有文件表则找不到V节点,就没法读写文件

文件描述符则文件表的编号

一个文件描述符就对应一个文件表

1个文件只有唯一的一个V节点

小结

读写设备文件实践

读写文件与文件内核数据结构

作业

完成课堂上讲解的案例程序

文档评论(0)

159****9610 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

版权声明书
用户编号:6044052142000020

1亿VIP精品文档

相关文档