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

Linux 文件描述符与索引节点

文件描述符与索引节点
 一般来讲,使用与管理文件是通过文件名来进行的,但从应用编程的角度看,文件描述符更有用,而系统中的文件在本质上是通过

其索引节点进行管理的。
 文件描述符是应用程序中表示被打开的文件的一个整数,其他对文件的操作接口都要使用这个整数来指定所操作的文件。
 从系统的角度来看,文件的索引节点(inode)是文件的唯一标识。一个文件的inode包含文件系统处理文件所需要的全部信息,如

访问权限、当前大小等。详细来说,实际上存在两种类型的inode:一个是所谓的内核inode(in-core inode),保存在内存中,在系统中

每个打开的文件都对应着一个内核inode;另一个是磁盘inode(on-disk inode),在文件系统中的每一个文件都有一个磁盘inode,保存在

磁盘上,它所保存的具体信息与文件系统的类型有关。当进程打开一个文件时,文件的磁盘inode中的信息就会被载入内存,并建立一个内

核inode。当内核inode被修改后,系统负责将其同步到磁盘上。磁盘inode与对应的内核inode所保存的信息并不是完成相同的。内核inode

记录的是关于文件的更通用的一些信息,而忽略掉与具体文件系统类型相关的一些信息。
 一般而言,一个inode应当记录如下信息:
  * 文件类型
  * 与文件相关的硬链接的个数
  * 以字节为单位的文件的长度
  * 设备标识符
  * 在文件系统中标识文件的索引号
  * 文件所属用户的UID(User ID,用户标识符)
  * 文件所属组的GID(Group ID,组标识符)
  * 各种时间戳,包括文件状态的改变时间、文件的最后访问时间和最后修改时间

转载于:https://www.cnblogs.com/wblyuyang/archive/2012/11/04/2754032.html

相关文章:

  • UIControl IOS控件编程—IOS开发
  • linux 查看版本
  • 欲修改内核参数添加何内容?
  • 系统工程师工具箱(一)
  • PLSQL中的RECORD小例子
  • velocity记录
  • 读取pdf
  • ThoughtWorks一周杂记(技术篇)
  • [ASP.NET MVC]Ajax与CustomErrors的尴尬
  • 【我眼中的戴尔转型】(四)惠普之道,月亮的脸悄悄地在改变
  • 图书推荐:《iOS软件开发兵法:应用程序与游戏开发之道》
  • php的时间戳与日期
  • @拔赤:Web前端开发十日谈
  • ORACLE实例RENAME,DB_LINK同步(Materialized View,Snapshot)
  • windows之ping
  • 《深入 React 技术栈》
  • 345-反转字符串中的元音字母
  • Javascript Math对象和Date对象常用方法详解
  • Markdown 语法简单说明
  • maya建模与骨骼动画快速实现人工鱼
  • Theano - 导数
  • TiDB 源码阅读系列文章(十)Chunk 和执行框架简介
  • 半理解系列--Promise的进化史
  • 观察者模式实现非直接耦合
  • 前端代码风格自动化系列(二)之Commitlint
  • 深度学习之轻量级神经网络在TWS蓝牙音频处理器上的部署
  • ​2021半年盘点,不想你错过的重磅新书
  • ​一文看懂数据清洗:缺失值、异常值和重复值的处理
  • #免费 苹果M系芯片Macbook电脑MacOS使用Bash脚本写入(读写)NTFS硬盘教程
  • (14)学习笔记:动手深度学习(Pytorch神经网络基础)
  • (9)目标检测_SSD的原理
  • (c语言版)滑动窗口 给定一个字符串,只包含字母和数字,按要求找出字符串中的最长(连续)子串的长度
  • (day6) 319. 灯泡开关
  • (Java岗)秋招打卡!一本学历拿下美团、阿里、快手、米哈游offer
  • (二)windows配置JDK环境
  • (附源码)springboot人体健康检测微信小程序 毕业设计 012142
  • (附源码)基于SSM多源异构数据关联技术构建智能校园-计算机毕设 64366
  • (区间dp) (经典例题) 石子合并
  • (深度全面解析)ChatGPT的重大更新给创业者带来了哪些红利机会
  • (五)大数据实战——使用模板虚拟机实现hadoop集群虚拟机克隆及网络相关配置
  • (一)u-boot-nand.bin的下载
  • (转载)虚幻引擎3--【UnrealScript教程】章节一:20.location和rotation
  • .cfg\.dat\.mak(持续补充)
  • .libPaths()设置包加载目录
  • .NET Entity FrameWork 总结 ,在项目中用处个人感觉不大。适合初级用用,不涉及到与数据库通信。
  • .Net Winform开发笔记(一)
  • .NET 中使用 TaskCompletionSource 作为线程同步互斥或异步操作的事件
  • .NET简谈设计模式之(单件模式)
  • .net企业级架构实战之7——Spring.net整合Asp.net mvc
  • /*在DataTable中更新、删除数据*/
  • @RunWith注解作用
  • [ element-ui:table ] 设置table中某些行数据禁止被选中,通过selectable 定义方法解决
  • [202209]mysql8.0 双主集群搭建 亲测可用
  • [2544]最短路 (两种算法)(HDU)
  • [Android Studio] 开发Java 程序