C语言学习笔记之文件(一)

一、流的概念
在C语言中每个串行输入源和输出目标被称为流。输入流是一个串行数据源,可以为程序提供数据,即在输入操作中,字节从输入设备流向内存。而输出流是串行数据的目的地,可以接收程序的输出,即在输出操作中,字节从内存流向输出设备。

二、文件的分类
1、文本文件和二进制文件
C语言中支持两种类型的文件:文本文件(也称ASCII文件)、二进制文件。在文本文件中,用字节来存储字符。而在二进制文件中,字节不一定表示字符,也可能是某数值型数据的某些bit位。以数值型数据的存储方式为例,在二进制文件中,数值型数据直接存储在其内存对应的二进制数。而在文本文件中,则是将数值型数据的每一位数字作为一个字符以及ASCII码的形式存储。因此,文本文件中的每一位数字单独占用一个字节的存储空间,而二进制文件则是把整个数字作为一个二进制数来存储。

2、缓冲文件与非缓冲文件
C语言中可使用以下两种文件系统:
(1) 缓冲文件系统,又称为标准文件系统或高级文件系统。是一种高效,方便且常用的文件系统
(2)、非缓冲文件系统,又称低级文件系统。该系统与机器有关,节省内存,执行效率高,但应用难度大
缓冲区是将信息从设备传输到程序或从程序传输给设备的临时存储区域。
由于CPU读写内存的最小单位是字节,而读写外围设备的最小单位是块。所以操作系统进行外设读写时采用缓冲区技术,当进行输入操作时,计算机从外设读取一个块的信息传输到缓冲区,之后CPU将从该缓冲区来读取所需要的信息,当缓冲区中的数据读取完毕或所需要的信息不在缓冲区时,再从外设中读取一块数据存入缓冲区,同理当程序需要向外设传输信息时,是将数据传输到缓冲区中,待缓冲区写满后,再启动外设,将缓冲区的信息一次性写入外设。

三、文件指针
C语言中对流的访问是通过文件指针来实现的,文件指针的类型是FILE*。文件指针表示特定的流有标准的名字,我们可以根据程序需要声明一些另外的文件指针
例如:

FILE *fp1,fp2;

定义了两个指针文件,可以通过文件打开函数将文件指针连接到指定的文件上。
一般而言,一个文件指针指向一个文件,因此,程序需要使用几个文件就定义几个文件,不允许一个文件指针同时指向多个文件,也不允许几个指针文件指向同一个文件。

你可能感兴趣的:(c,c语言)