- 1、本文档共2页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
缓冲文件系统与非缓冲文件系统
C语言中的磁盘文件系统有两大类:一类称为缓冲文件系统,又称为标准文件系统;另一类称为非缓冲文件系统。
缓冲文件系统的特点是:系统自动地在内存区为每一个正在使用的文件开辟一个缓冲区。从磁盘向内存读入数据时,则一次从磁盘文件将一些数据输入到内存缓冲区(充满缓冲区),然后再从缓冲区逐个地将数据送给接收变量;向磁盘文件输出数据时,先将数据送到内存中的缓冲区,装满缓冲区后才一起送到磁盘去。用缓冲区可以一次读入一批数据,或输出一批数据,而不是执行一次输入或输出函数就去访问一次磁盘,这样做的目的是减少对磁盘的实际读写次数,因为每一次读写都要移动磁头并寻找磁道扇区,花费一定的时间。缓冲区的大小由各个具体的C版本确定,一般为512字节。
非缓冲文件系统不由系统自动设置缓冲区,而由用户自己根据需要设置。在传统的UNIX系统下,用缓冲文件系统来处理文本文件,用非缓冲文件系统处理二进制文件。1983年ANSIC标准决定不采用非缓冲文件系统,而只采用缓冲文件系统。即用缓冲文件系统处理文本文件,也用它来处理二进制文件。也就是将缓冲文件系统扩充为可以处理二进制文件。一般把缓冲文件系统的输入输出称为标准输入输出(标准I/O),非缓冲文件系统的输入输出称为系统输入输出(系统I/O)。在C语言中,没有输入输出语句,对文件的读写都是用库函数来实现的。非缓冲型文件系统没有文件指针,而是使用文件号来标识文件。
文件的顺序读写与随机读写
文件的顺序读写是指文件被打开后,按照数据流的先后顺序对文件进行读定操作,每读写一次,位置指针自动指向下一个读写位置。为了从顺序读写的文件中提取特定的数据,程序都是从文件头开始连续地读取数据,直到发现要提取的数据为止。而且由于各项数据不一定类型相同,占用的字节数也不尽相同,当需要修改数据时,往往会有破坏文件中其他数据的风险。
文件的随机读写是指可以对文件中指定的位置进行读写操作。这样就需要对读写位置进行准确定位。一般地,文件的随机读写适合于具有固定长度记录的文件,因为这样可以通过指针定位函数,控制位置指针准确地跳到指定位置,在不破坏其他记录的情况下,把新记录插入到文件中去。也可以在不重写整个文件的情况下更新和删除记录。
文档评论(0)