文件定义
磁盘文件
:指一组相关数据的有序集合,通常存储在外部介质(如磁盘)上,使用时才能调入内存。
设备文件
:在操作系统中把每个与主机相连的输入、输出设备看作一个文件,把它们的输入、输出等同于对磁盘文件的读与写。
键盘
:标准输入文件
屏幕
:标准输出文件
标准io库函数对磁盘文件的读取特点
:
文件缓冲区是库函数申请的一段内存,由库函数对其操作,来实现对磁盘文件的读取。
缓冲分类
行缓存
:
标准io库函数,缓冲区碰到换行符的时候才刷新缓冲区。往标准输出(屏幕)输出内容的时候是行缓存。
注意
:若不刷新缓冲区,无法对文件进行读写操作。
行缓存刷新条件
:
1、使用“\n”换行符
2、待程序正常结束
3、使用fflush函数刷新缓冲区
4、当缓冲区满的时候自动刷新,默认行缓冲区的大小为1024个字节
全缓冲
:
标准io库函数,往普通文件读取数据的缓存;碰到换行符不会刷新缓冲区,即只有当缓冲区满了才刷新。
全缓存刷新条件
:
1、当缓冲区满的时候自动刷新
2、待程序正常结束
3、使用fflush函数刷新缓冲区
无缓冲
:
在读、写文件时通过系统调用io函数
,对文件进行读、写数据时的缓冲。无缓冲即写数据
会立即进入文件;读数据
会立即进入内存。
写文件的流程
应用程序空间
->内核空间
->驱动程序
->硬盘文件
应用程序和内核程序运行在不同空间内,目的是为了保护内核。
设置缓冲区的目的
通过缓冲区减少进出内核的次数,以提高效率
磁盘文件的分类
一个文件通常是磁盘上一段命名的存储区,计算机的存储在物理上是二进制的,所以物理上所有磁盘文件本质上都是一样的:以字节为单位进行顺序存储。
从用户或者操作系统使用的角度(逻辑上)把文件分为:
文本文件
:基于字符编码
的文件
基于字符编码,常见编码由ASCII、UNICODE等,一般可以使用文本编辑器打开。
二进制文件
:基于值编码
的文件
把内存中的数据按其在内存中的存储形式原样输出到磁盘上,一般需要用户自己判断或使用特定软件分析数据形式。如:音频文件(MP3):二进制文件
文件指针
文件指针
在程序中用来标示一个文件,在打开文件的时候得到文件指针
。文件指针就用来代表打开的文件。通过对文件指针的操作
,来实现对文件的读、写、关闭等操作。
定义文件指针的一般形式:FILE *
指针变量标识符;本质上文件指针是一个结构体指针。
网友评论