博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
APUE 1 - Unix数据结构
阅读量:4682 次
发布时间:2019-06-09

本文共 559 字,大约阅读时间需要 1 分钟。

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

你可能感兴趣的文章
Python-面向对象(组合、封装与多态)
查看>>
Mininet
查看>>
COSC2531 Programming Fundamentals
查看>>
设计模式系列 - 访问者模式
查看>>
20180507小测
查看>>
eclipse左侧不见
查看>>
python会缓存小的整数和短小的字符
查看>>
格网与四叉树索引
查看>>
多张照片拍摄、图片浏览
查看>>
html(5) css
查看>>
Azure Web连接到Azure MySql Db
查看>>
Linux shell 命令判断执行语法 ; , && , ||
查看>>
vim代码格式化插件clang-format
查看>>
RTP Payload Format for Transport of MPEG-4 Elementary Streams over http
查看>>
Aurora — 一个在 MSOffice 内输入 LaTeX 公式的很好用插件
查看>>
关于sql优化的一个小总结
查看>>
Java语言中的正则表达式
查看>>
Java环境变量设置
查看>>
【JBPM4】判断节点decision 方法3 handler
查看>>
filter 过滤器(监听)
查看>>