11第六章文件操作解析.ppt

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

第 4 章 文件的操作 本章重点 Linux系统的文件属性 不带缓存的文件I/O操作 基于流的文件I/O操作 特殊文件的操作 4.1 Linux系统文件的属性 Linux系统中,文件的准确定义是不包含有任何其他结构的字符流。 Linux系统提供的文件系统,是树形层次结构系统。 Linux支持多种文件系统,最常用的文件系统是ext2系统。 Linux系统的文件属性主要包括文件类型和文件权限两个方面。 4.1.1 Linux文件类型 Linux下最常见的文件类型有5种:普通文件、目录文件、链接文件、管道文件和设备文件。 例4.1:设计一个程序,要求列出当前目录下的文件信息,以及系统“/dev/sda1”和“/dev/lp0”的文件信息。 编辑源程序代码 : 4.1.1 Linux文件类型 Linux系统的主要文件类型: 4.1.2 Linux文件权限 对于Linux系统中的文件来说,它的权限可以分为4种:可读取(Readable)、可写入(Writable)、可执行(eXecute)和无权限,分别用r、w、x和-表示。 Linux系统按文件所有者、文件所有者同组用户和其它用户三类规定不同的文件访问权限。 显示的作为权限的10个字符,可分为四部分: 第一位:一般表示文件类型。 第二位到第四位(第一组rwx):表示文件所有者的访问权限。 第五位到第七位(第二组rwx):表示文件所有者同组用户的访问权限。 第八位到第十位(第三组rwx):表示其他用户的访问权限。 4.1.2 Linux文件权限 例4.2:设计一个程序,要求把系统中“/etc”目录下的passwd文件权限,设置成文件所有者可读可写,所有其他用户为只读权限。 源程序代码: 4.1.2 Linux文件权限 例4.3:设计一个程序,要求设置系统文件与目录的权限掩码。 源程序代码 : 4.1.2 Linux文件权限 chmod函数说明 4.1.2 Linux文件权限 umask函数说明 4.1.3 Linux文件的其他属性 文件还有创建时间,大小等其他的属性。 在Linux系统中,定义了stat结构体来存放这些信息。 4.1.3 Linux文件的其他属性 例4.4:设计一个程序,应用系统函数stat获取系统中“/etc”目录下的passwd文件的大小。 源程序代码: 4.1.3 Linux文件的其他属性 stat函数说明 4.2 不带缓存的文件I/O操作 Linux系统中,基于文件描述符的文件操作主要有:不带缓存的文件I/O操作和带缓存的文件流I/O操作。 不带缓存的文件I/O操作,又称系统调用I/O操作,符合POSIX标准,设计的程序能在兼容POSIX标准的系统间方便地移植。 不带缓存的文件I/O操作用到的主要函数: 4.2.1 文件的创建 例4.5:设计一个程序,要求在“/home”目录下创建一个名称为“4-5file”的文件,并且把此文件的权限设置为所有者具有只读权限,最后显示此文件的信息。 源程序代码 : 4.2.1 文件的创建 creat函数说明 4.2.2 文件的打开和关闭 例4.6:设计一个程序,要求在“/home”下以可读写方式打开一个名为“4-6file”的文件,如果该文件不存在,则创建此文件,如果存在,将文件清空后关闭。 源程序代码: 4.2.2 文件的打开和关闭 open函数说明 4.2.2 文件的打开和关闭 close函数说明 4.2.3 文件的读写操作 文件读写操作中,经常用到的函数是read、write和lseek。 例4.7:设计一个C程序,完成文件的复制工作。要求通过使用read函数和write函数复制“/etc/passwd”文件到“4-7test”文件中,文件名当程序运行时从键盘键入。 源程序代码 : 4.2.3 文件的读写操作 Read、write函数说明 4.2.4 文件上锁 Linux系统中,给文件上锁主要有建议性锁和强制性锁。给文件加建议性锁的是flock函数,给文件加强制性锁的是fcntl函数。 一般情况下,系统使用强制性锁,而很少使用建议性锁。当一个文件被上锁后,内核将阻止其他任何文件对其进行读写操作。 例4.8:设计一个程序,要求在“/home”下打开一个名为“4-8file”的文件,如果该文件不存在,则创建此文件。打开后对其加上强制性的写入锁,然后释放写入锁。 源程序代码 : 4.2.4 文件上锁 4.2.4 文件上锁 flock、fcntl函数说明 4.3 带缓存的流文件I/O操作 带缓存的流文件I/O操作,是在内存开辟一个“缓存区”,为程序中的每一个文件使用。 内存“缓存区”的大小,影响着实际操作外存的次数,内存“缓存区”越大,则操作外存的次数

文档评论(0)

4477704 + 关注
实名认证
内容提供者

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

1亿VIP精品文档

相关文档