第十三讲文件 C文件概述 文件类型指针 文件的打开与关闭 文件的读写 ◆文件的定位 ⅴ出错的检测 非缓冲文件系统 文件输入输出小结
第十三讲 文件 C文件概述 文件类型指针 文件的打开与关闭 文件的读写 文件的定位 出错的检测 非缓冲文件系统 文件输入输出小结
C文件概述 文件(fle)-般指:存储在外部介质上数据的集合。数据是 以文件的形式存放在外部介质(如磁盘)上的,操作系统是 以文件为单位对数据进行管理的,也就是说,如果想找存在外 部介质上的数据,必须先按文件名找到所指定的文件然后再 从该文件中读取数据。要向外部介质上存储数据也必须先 建立一个文件(以文件名标识)才能向它输出数据 C语言把文件看作是一个字符(字节)的序列即由一个 字符(字节)的数据顺序组成根据数据的组织形成,可分为 ASCI文件和二进制文件。ASCI文件又称文本(ext)文件它 的每一个字节放一个ASCⅡ代码,代表一个字符二进制文件 是把内存中的数据按其在内存中的存储形式原样输出到磁 盘上存放
C文件概述 文件(file)一般指:存储在外部介质上数据的集合。数据是 以文件的形式存放在外部介质(如磁盘)上的,操作系统是 以文件为单位对数据进行管理的,也就是说,如果想找存在外 部介质上的数据,必须先按文件名找到所指定的文件,然后再 从该文件中读取数据。要向外部介质上存储数据也必须先 建立一个文件(以文件名标识),才能向它输出数据。 C语言把文件看作是一个字符(字节)的序列,即由一个一 个字符(字节)的数据顺序组成.根据数据的组织形成,可分为 ASCII文件和二进制文件。ASCII文件又称文本(text)文件,它 的每一个字节放一个ASCII代码,代表一个字符.二进制文件 是把内存中的数据按其在内存中的存储形式原样输出到磁 盘上存放
ASCI形式和二进制形式输出的不同 例:如果有一个整数10000在内存中占2个字节,如果按 ASCI形式输出,则占5个字节,而按二进制形式输出,在 磁盘上只占2个字节如下图所示 ASCI形式 0011000100110000001100000011000000110000 0010011100010000 二进制形式 0010011100010000 流 式 由前所述,一个C文件是一个字节流或二进制流。它把数 文据看作是连串的字符(字节而不考虑记录的界限,即C中 件文件并不是由记录eod组成的,在C中对文件的存取是 形餐程辟控制而不受物理符号控制,我们把这种文件称为流 式
ASCII形式和二进制形式输出的不同: 例: 如果有一个整数10000,在内存中占2个字节,如果按 ASCII形式输出,则占5个字节,而按二进制形式输出,在 磁盘上只占2个字节.如下图所示: 00100111 00010000 00100111 00010000 00110001 00110000 00110000 00110000 00110000 ASCII形式 (1) (0) (0) (0) (0) 二进制形式 由前所述,一个C文件是一个字节流或二进制流。它把数 据看作是一连串的字符(字节),而不考虑记录的界限,即C中 文件并不是由记录(record)组成的。在C中对文件的存取是 以字符(字节)为单位的,输入/输出数据流的开始和结束仅 受程序控制而不受物理符号控制,我们把这种文件称为流 式文件。 流 式 文 件 的 形 式:
文件的处理方法 日C版本有两种对文件的处理方法 缓冲文件系统 所谓缓冲文件系统是指,系统自动 地在内存区为每一个正在使用的文 输出文件缓冲区 件名开辟一个缓冲区。从内存向磁 数据程序区 输出 盘输出数据必须先送到内存中的缓 冲区,装满缓冲区后才一起送到磁 输出 磁盘)盘去;从磁盘向内存读入数据,也 输入文件缓冲区 输入 输入 是一次从磁盘文件将一批数据输入 到内存缓冲区,然后再从缓冲区逐 个地将数据送到程序数据区(给程 序变量)。缓冲区的大小由各个具 体的C版本确定,一般为512字节
文件的处理方法 旧C版本有两种对文件的处理方法: 一.缓冲文件系统: 数据程序区 输出文件缓冲区 输入文件缓冲区 输出 输入 输出 输入 磁盘 所谓缓冲文件系统是指,系统自动 地在内存区为每一个正在使用的文 件名开辟一个缓冲区。从内存向磁 盘输出数据必须先送到内存中的缓 冲区,装满缓冲区后才一起送到磁 盘去;从磁盘向内存读入数据,也 是一次从磁盘文件将一批数据输入 到内存缓冲区,然后再从缓冲区逐 个地将数据送到程序数据区(给程 序变量)。缓冲区的大小由各个具 体的C版本确定,一般为512字节
二非缓冲文件系统:所谓“非缓冲文件系统”是指系统 不 自动开辟确定大小的缓冲区, 而由程 序为每个文件设定缓冲区 在UNIX系统中,用缓冲文件系统来处理文本文件,用非 缓冲文件系统处理二进制文件。用缓冲文件系统进行的 输入/输出又称为高级输入/输出系统用非缓冲文件系统 进行的输入输出又称为低级输入/输出系统。TC只采用 缓冲文件系统,即既用缓冲文件系统处理文本文件,也用 它来处理二进制文件
二.非缓冲文件系统: 所谓“非缓冲文件系统”是指系统 不 自动开辟确定大小的缓冲区, 而由程 序为每个文件设定缓冲区。 在UNIX系统中,用缓冲文件系统来处理文本文件,用非 缓冲文件系统处理二进制文件。用缓冲文件系统进行的 输入/输出又称为高级输入/输出系统,用非缓冲文件系统 进行的输入输出又称为低级输入/输出系统。 TC只采用 缓冲文件系统,即既用缓冲文件系统处理文本文件,也用 它来处理二进制文件