您的位置:首页 > 其它

关于缓冲区文件系统和非缓冲区文件系统浅谈

2017-02-27 17:25 309 查看
目前C 语言所使用的磁盘文件系统有两大类:一类称为缓冲文件系统,又称为标准文
件系统;另一类称为非缓冲文件系统。
缓冲文件系统的特点是:系统自动地在内存区为每一个正在使用的文件开辟一个缓冲
区。从磁盘向内存读入数据时,则一次从磁盘文件将一些数据输入到内存缓冲区(充满缓
冲区),然后再从缓冲区逐个地将数据送给接收变量;向磁盘文件输出数据时,先将数据
送到内存中的缓冲区,装满缓冲区后才一起送到磁盘去。用缓冲区可以一次读入一批数据,
或输出一批数据,而不是执行一次输入或输出函数就去访问一次磁盘,这样做的目的是减
少对磁盘的实际读写次数,因为每一次读写都要移动磁头并寻找磁道扇区,花费一定的时
间。缓冲区的大小由各个具体的C 版本确定,一般为512 字节。缓冲文件系统的读写,如
图10.2 所示。
非缓冲文件系统不由系统自动设置缓冲区,而由用户自己根据需要设置。
在传统的UNIX 系统下,用缓冲文件系统来处理文本文件,用非缓冲文件系统处理二进
制文件。1983 年ANSI C 标准决定不采用非缓冲文件系统,而只采用缓冲文件系统。即用缓冲文件系统处理文本文件,也用它来处理二进制文件。也就是将缓冲文件系统扩充为可
以处理二进制文件。
一般把缓冲文件系统的输入输出称为标准输入输出(标准I/O),非缓冲文件系统的
输入输出称为系统输入输出(系统I/O)。在C 语言中,没有输入输出语句,对文件的读
写都是用库函数来实现的。ANSI
规定了标准输入输出函数,用它们对文件进行读写。本章
主要介绍ANSI C 的文件系统以及对其读写方法。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: