当前位置: 首页 > news >正文

APUE 1 - Unix数据结构

Unix 类操作系统支持不同进程间共享文件。对于所有的I/O,内核使用3种数据结构来表示一个打开的文件。

 

  1. 进程表。每个进程在进程表中有其相应的入口。文件结构中,每个进程表的入口是文件描述符表,每个文件描述符表中的文件描述符关联着两个东西,一个是此文件描述符的标志(一般指close-on-exec,如果此标志被设置了,那么进程在执行exec函数时,父进程中此文件描述符会被关闭);一个是指向一个文件表的入口。
  2. 内核包含一个所有打开文件的文件表,这个表中的每个入口包含三个东西,一个是文件状态标志,如 读、写、追加、同步等;一个是此文件当前偏移位置;还有一个是指向    v-node表(linux下没有v-node, 它直接使用的i-node)响应入口的指针。
  3. 每个打开的文件或设备拥有一个类似v-node的结构,包含着文件类型和指向操作此文件的所有函数的指针。对于大多数文件,v-node 包含着此文件的i-node信息。

由上图可见,两个独立的进程中,他们的文件描述符是相对另一个进程独立的,他们中的不同或相同文件描述符可以指向同一个文件,但是他们拥有不同的文件表入口,并以此控制这个各自对此文件的读写偏移及文件状态信息。

 

转载于:https://www.cnblogs.com/Sven7/p/7442565.html

相关文章:

  • stlport 编译方法
  • 自动在多个DB上执行同一条sql语句
  • this指向
  • ASCII码表
  • 扫雷游戏制作过程(C#描述):第三节、雷区绘制
  • 使用SQL中的ROW_NUMBER()和while循环对每一行执行操作
  • 关于FPGA随笔
  • 取得所有DB的名称, 形成一行, 并以逗号分隔
  • windows下安装JDK1.8和eclipse
  • LightOJ 1414 February 29(闰年统计+容斥原理)
  • C++ 日志类库 log4cplus
  • Spark Mllib里如何将trainDara训练数据的分类特征字段转换为数值字段(图文详解)...
  • 给Eclipse安装eUML2插件以及可能出现的依赖错误解决方案
  • junit import org.junit.Test 报错
  • SQL Server2005与SQLServer2008并存时, 怎样连接到2008
  • Computed property XXX was assigned to but it has no setter
  • css的样式优先级
  • Docker下部署自己的LNMP工作环境
  • JS创建对象模式及其对象原型链探究(一):Object模式
  • JS正则表达式精简教程(JavaScript RegExp 对象)
  • leetcode讲解--894. All Possible Full Binary Trees
  • log4j2输出到kafka
  • Python socket服务器端、客户端传送信息
  • RedisSerializer之JdkSerializationRedisSerializer分析
  • SpiderData 2019年2月16日 DApp数据排行榜
  • SpiderData 2019年2月23日 DApp数据排行榜
  • 关于字符编码你应该知道的事情
  • 基于Dubbo+ZooKeeper的分布式服务的实现
  • 前端js -- this指向总结。
  • 算法系列——算法入门之递归分而治之思想的实现
  • 用jQuery怎么做到前后端分离
  • 用mpvue开发微信小程序
  • postgresql行列转换函数
  • ​云纳万物 · 数皆有言|2021 七牛云战略发布会启幕,邀您赴约
  • # 日期待t_最值得等的SUV奥迪Q9:空间比MPV还大,或搭4.0T,香
  • #android不同版本废弃api,新api。
  • #Linux(权限管理)
  • #mysql 8.0 踩坑日记
  • #我与Java虚拟机的故事#连载15:完整阅读的第一本技术书籍
  • (33)STM32——485实验笔记
  • (5)STL算法之复制
  • (delphi11最新学习资料) Object Pascal 学习笔记---第7章第3节(封装和窗体)
  • (Demo分享)利用原生JavaScript-随机数-实现做一个烟花案例
  • (二)构建dubbo分布式平台-平台功能导图
  • (学习日记)2024.03.25:UCOSIII第二十二节:系统启动流程详解
  • (转)linux下的时间函数使用
  • (转)母版页和相对路径
  • (转载)CentOS查看系统信息|CentOS查看命令
  • (转载)Google Chrome调试JS
  • .bat批处理(九):替换带有等号=的字符串的子串
  • .NET 8.0 中有哪些新的变化?
  • .NET 设计模式—适配器模式(Adapter Pattern)
  • .net 写了一个支持重试、熔断和超时策略的 HttpClient 实例池
  • @Autowired 与@Resource的区别
  • @Autowired标签与 @Resource标签 的区别