【C语言】缓冲文件系统和非缓冲文件系统
来源:互联网 发布:linux 更改字符集 编辑:程序博客网 时间:2024/06/05 09:35
C 语言所使用的磁盘文件系统有两大类:一类称为缓冲文件系统,又称为标准文件系统;另一类称为非缓冲文件系统。
缓冲文件系统的特点是系统自动地在内存区为每一个正在使用的文件开辟一个缓冲区。从磁盘向内存读入数据时,则一次从磁盘文件将一些数据输入到内存缓冲区(充满缓冲区),然后再从缓冲区逐个地将数据送给接收变量;向磁盘文件输出数据时,先将数据送到内存中的缓冲区,装满缓冲区后才一起送到磁盘去。
用缓冲区可以一次读入一批数据,或输出一批数据,而不是执行一次输入或输出函数就去访问一次磁盘,这样做的目的是减少对磁盘的实际读写次数,因为每一次读写都要移动磁头并寻找磁道扇区,花费一定的时间。缓冲区的大小由各个具体的C 版本确定,一般为512 字节。
非缓冲文件系统不由系统自动设置缓冲区,而由用户自己根据需要设置。在传统的UNIX 系统下,用缓冲文件系统来处理文本文件,用非缓冲文件系统处理二进制文件。
1983 年ANSI C 标准决定不采用非缓冲文件系统,而只采用缓冲文件系统。即用缓冲文件系统处理文本文件,也用它来处理二进制文件。也就是将缓冲文件系统扩充为可以处理二进制文件。
一般把缓冲文件系统的输入输出称为标准输入输出(标准I/O),非缓冲文件系统的输入输出称为系统输入输出(系统I/O)。在C 语言中,没有输入输出语句,对文件的读写都是用库函数来实现的。
ANSI 规定了标准输入输出函数,用它们对文件进行读写。
0 0
- 【C语言】缓冲文件系统和非缓冲文件系统
- 缓冲文件系统和非缓冲文件系统
- 什么是缓冲文件系统和非缓冲文件系统
- 缓冲文件系统和非缓冲文件系统(转载)
- IO_缓冲和非缓冲
- c/c++ 缓冲输入和非缓冲输入
- c/c++ 缓冲输入和非缓冲输入
- c语言缓冲问题
- 缓冲与非缓冲
- 缓冲与非缓冲
- C的全缓冲、行缓冲和无缓冲
- c语言缓冲输入和非缓冲输入的分析(stdin和stdout流的应用,getchar,getch的区别)
- c语言的输入缓冲
- C语言中的缓冲机制
- Java缓冲和非缓冲流简单验证
- 缓冲IO和非缓冲IO的区别(转载)
- 分享 关于缓冲的channel和非缓冲的channel
- mysql的缓冲查询和非缓冲查询
- linux I/O复用select、poll和epoll
- WIN7下VisualSVN服务器无法启动的解决
- 3-05. 求链式线性表的倒数第K项(15)(STL list运用 ZJU_PAT)
- 风光好地方个好地方
- hdu1994利息计算
- 【C语言】缓冲文件系统和非缓冲文件系统
- 产品经理的能力框架图
- C++ List的用法(整理)
- python urllib2
- poj2029
- Cocos2d-X 游戏中CCTextField的使用方法
- 上的风格的风格是的分公司
- 简单解析stm32F10x.h
- 【Java.Web】JSP —— 语法基础 —— 请求转发