- 1、本文档共104页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第13章 磁盘文件操作(I/O系统) 13.1 文 件 概 述 13.1.1 C语言文件的概念 文件(file)是存储在外部介质(如磁盘,磁带)上的,以惟一的名字作为标记的数据集合。操作系统是以文件为单位对数据进行管理的。 与主机相连的输入输出设备,其作用也是从设备上读取数据和将数据写到设备上,所以,也把输入输出设备看作是文件。 给每个文件起一个名字。完整的磁盘文件名的组成如下: 盘符:路径\(基本)文件名.扩展名 操作系统支持对文件的各项管理,文件的命名应符合操作系统的规定。 文件操作的主要有两个,一是从文件取出数据存入内存变量中,这就是文件的读操作。二是将内存变量中存放的数据存放到文件中,这就是文件写操作。统称为文件的I/O操作。 由于文件是受操作系统管理的,应用程序使用某一文件时,它需要向操作系统提出建立与文件的联系;使用结束时,通知操作系统切断与文件的联系。这是两个过程,前者称为打开文件,后者称为关闭文件。 在C语言中,文件的打开与关闭,文件的读操作与写操作,都是由C语言提供的系统函数完成的。 13.1.2 二进制文件和文本文件 文件数据的存储,一般有两种形式。一种是以ASCII码的形式按字节存储的。这样的文件叫做文本文件(text file),又叫ASCII文件。另一种是以在内存中的二进制数形式存储的文件,称为二进制文件。 13.1.3 顺序文件和随机文件 按照文件内数据处理方式的不同,文件又分为顺序文件和随机文件。 顺序文件是按照数据存储的顺序连续地处理(读或写)每一个数据。为了处理文件中某个数据,必须从文件的第一个数据开始,顺序取完指定数据前所有的数据,才能处理该数据。 随机文件处理数据时,可以在文件中任意指定的位置读写数据。 13.1.4 缓冲文件系统和非缓冲文件系统 按系统对文件的支持方式的不同,分为缓冲文件系统和非缓冲文件系统。C语言支持这两种文件系统。 所谓缓冲文件系统(buffered file system)是指在进行I/O操作时,系统自动为每个打开的文件开辟一个内存缓冲区。 采用缓冲区的目的是,匹配快速的CPU和慢速的磁盘操作,提高CPU的工作效率,减少访问磁盘的次数。图13-1所示给出缓冲文件系统的示意图。 所谓非缓冲文件系统(unbuffered file system)是指系统不自动开辟内存缓冲区,而是由程序自己为每个文件设定缓冲区。 13.1.5 文件型指针 在ANSI文件I/O系统中,每个被使用的文件,都在内存开辟一个区,用于存放与文件相关的信息,如文件号(文件在操作系统中被管理的代号),文件的读写状态,文件缓冲区的地址,以及当前的读写缓冲区数据的位置等。 这些信息存放在一个结构型变量中。这个结构类型是系统定义的,并通过typedef将该结构型起名为FILE。FILE结构型定义在stdio.h文件中。 其定义如下: typedef struct { int _fd; int _cleft; int _mode; char *nextc; char *buff; }FILE; 程序使用文件,首先必须定义一个FILE型结构的指针变量。这个指向FILE结构型的指针称为文件型指针。通过这个指针可以实现对文件的操作。 定义文件指针变量的一般形式为: FILE *文件型指针名; 可以同时定义多个文件型指针。 13.2 打开文件和关闭文件 打开文件的意思是使定义的文件型指针指向打开的文件,包括为文件型变量分配内存空间,在内存为文件建立缓冲区,将文件和缓冲区的相关信息写入文件型变量的各成员中。 文件使用完后,系统将缓冲区中的数据做相应的处理(如将数据写入文件等),然后,释放缓冲区。这个过程叫做关闭文件。 13.2.1 打开文件函数 打开文件函数fopen()的格式为: FILE *fopen(char *filename, char *mode) 其中参数filename是字符型指针,它指向的字符串是要
您可能关注的文档
- C及C++程序设计 第3版 教学课件 张富 第5章 循环结构程序设计.ppt
- C及C++程序设计 第3版 教学课件 张富 第6章 位运算.ppt
- C及C++程序设计 第3版 教学课件 张富 第7章 数组与字符串.ppt
- C及C++程序设计 第3版 教学课件 张富 第8章 指针.ppt
- C及C++程序设计 第3版 教学课件 张富 第9章 函数.ppt
- C及C++程序设计 第3版 教学课件 张富 第10章 数据的存储类型.ppt
- C及C++程序设计 第3版 教学课件 张富 第11章 用户定义数据类型.ppt
- C及C++程序设计 第3版 教学课件 张富 第12章 C语言的预处理器.ppt
- C及C++程序设计 第3版 教学课件 张富 第14章 C++概述.ppt
- C及C++程序设计 第3版 教学课件 张富 第15章 类.ppt
- 2024年证券分析与咨询服务项目投资申请报告代可行性研究报告.docx
- 2024年铬酸酐项目资金申请报告代可行性研究报告.docx
- 2024年清洁胶项目资金申请报告代可行性研究报告.docx
- 2024年肉松饼项目投资申请报告代可行性研究报告.docx
- 2024年陆上泵项目资金需求报告代可行性研究报告.docx
- 2024年未硫化复合橡胶及其制品项目资金需求报告代可行性研究报告.docx
- 2024年精密温控节能设备项目资金筹措计划书代可行性研究报告.docx
- 2024年汽车覆盖件模具项目资金筹措计划书代可行性研究报告.docx
- 宋词行书钢笔字帖.pdf
- 我的暑假生活作文三年级300字10篇.pdf
最近下载
- 刍议核心素养理念下小学道德与法治情境教学研究-来源:中国校外教育(第2020022期)-中国儿童中心.pdf VIP
- 屋顶分布式光伏发电项目可行性研究报告2.doc
- QC诊断师培训分享试题.docx
- 结题鉴定表.doc
- 北师大版七上《去括号》说课稿2.pdf
- 对被执行人的拘留申请书.docx VIP
- 黑龙江省齐齐哈尔市铁峰区2023-2024学年九年级上学期期中考试英语试题.pdf VIP
- 肾脏疾病生活质量简表(KidneyDiseaseQualityofLifeshortForm1.3,KDQOL-SFTM1.3).pdf
- 《税法》说课课件.pptx VIP
- ASTM C231_C231M-24 Standard Test Method for Air Content of Freshly Mixed Concrete by the Pressure Method 用压力法测定新拌混凝土中空气含量的标准试验方法.pdf
文档评论(0)