- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
系统调用-定位 int lseek(int fd, offset_t offset, int whence) 功能:将文件读写指针相对whence移动offset个字节。操作成功时,返回文件指针相对于文件头的位置。 * * 精通Linux C编程 重点内容: 文件概述 文件I/O操作 文件高级操作 第3章 Linux下的文件编程 注:在C编程环境中,与文件有关的操作主要是I/O操作, 即基于文件描述符的I/O操作。 一、文件概述 Linux的文件是个简单的字节序列。文件是由一系列块(block)组成,每个块可能含有512、1024、2048或4096个字节,具体由系统实现决定。不同的文件系统的块大小可以不同,但同一个文件系统的块大小是相同的。 Linux的文件系统通常由4部分组成:引导块、超级块、索引节点表(innode table)和数据块)。 一、文件概述 超级块用于描述一个文件系统的资源状态,如:文件系统的大小、空闲空间位置信息。超级块由如下字段构成: --文件系统的规模(如inode数目、数据块数目、保留块数目和块的大小等)。 --文件系统中空闲块的数目。 --文件系统中部分可用的空闲块表。 --空闲块表中下一个空闲块号。 --索引节点表的大小。 --文件系统中空闲索引节点表数目。 --文件系统中部分空闲索引节点表。 --空闲索引节点表中下一个空闲索引节点号。 --超级块的锁字段。 --空闲块表的锁字段和空闲索引节点的锁字段。 --超级块是否被修改的标志。 --其他字段。 1、超级块 一、文件概述 索引节点(inode)是Linux文件系统的最基本的概念。一个文件的控制信息通常由inode给出,每个inode对应着一个文件。在inode中包含有文件数据在磁盘上存储的位置信息,还包含有存取权限、文件所有者即存取时间等信息。索引节点(inode)存储在磁盘上。 磁盘索引节点和内存索引节点。 磁盘索引节点由如下字段构成: --文件类型:文件可以是普通文件、目录文件、链接文件、设备文件、管道文件。 --文件链接数:记录了引用该文件的目录表项数。 --文件属主标识:指出该文件的所有者id。 --文件属主的组标识:指出该文件所有者属组的id。 --文件的访问权限:系统将用户分为文件属主、同组用户和其它用户三类。 --文件的存取时间:包括文件最后一次被修改的时间、最后一次被访问的时间和最后一次修改索引节点的时间。 --文件的长度:以字节表示的文件长度。 --文件的数据块指针:对文件操作的当前位置指针。 2、索引节点(inode) 一、文件概述 (1)普通文件 也称正规文件,是最常见的一类文件,也是最常使用到的一类文件。这种类型的文件按其内部结构又可细分为两个文件类型:文本文件和二进制文件。 (2)目录文件 Linux文件系统的目录是一种文件,在文件名与索引节点之间的转换起到桥梁作用,是树形文件结构关键。Linux的目录文件其实非常简单,它的主要内容只有2项:文件名和索引节点号。 (3)链接文件 链接文件是一种特殊的文件。它实际上是指向一个真实存在的文件的链接。 (4)设备文件 设备文件是Linux中最特殊的文件。正是由于它的存在,使得Linux系统可以十分方便的访问外部设备。 主设备号和次设备号。块设备文件和字符设备文件。(根据访问数据方式的不同) (5)管道文件 管道文件也是一种很特殊的文件。主要用于不同进程间的信息传递。 3、文件类型 二、文件描述符 对于Linux而言,所有对设备和文件的操作都使用文件描述符来进行。文件描述符是一个非负的整数,表示为int类型的对象,它是一个索引值,并指向内核中每个进程打开文件的记录表。当打开一个现存文件或创建一个新文件时,内核就向进程返回一个文件描述符。当需要读写文件时,也需要把文件描述符作为参数传递给相应的函数。 每个进程都可以拥有若干文件描述符,数量多少则依赖于操作系统的实现,Linux中的每个进程可以有1024个文件描述符。每个进程有自己的用户描述符表。文件描述符表的前三项对于一般的进程是固定的且是由系统自动打开的。文件描述符0是标准输入文件,对于一般进程来说是键盘;文件描述符1是标准输出文件,一般是输出到显示器;文件描述符2是标准错误输出文件,一般也是输出到屏幕。用户程序不用执行打开操作就可直接使用。文件描
您可能关注的文档
最近下载
- 岛津原子吸收分光光度计AA-6300软件硬件基本操作AA-6300-rj手册说明书.pdf VIP
- The Magic of Ordinary Days《平凡岁月的魅力(2005)》完整中英文对照剧本.docx VIP
- 注册税务师备考课件.pptx VIP
- MECG1000心电图机培训.pptx VIP
- 国内外CO2催化转化技术发展现状与未来展望.docx VIP
- 道路运输企业双重预防机制建设资料(安全风险分级管控和隐患排查治理).pdf
- HG∕T 5421-2018 噻唑膦原药(可复制版).pdf
- 括号里最大能填几326题.pdf VIP
- 公司物业服务投标方案(技术方案).docx VIP
- 实验动物学学堂云学堂在线课后题答案.docx VIP
文档评论(0)