C文件概述 由前所述, 个C文件是一个字节流或二进制流。它把 数据看作是一连串的字符(字节,而不考虑记录的界限。 换句话说,C语言中文件并不是由记录record)组成的。 在C语言中对文件的存取是以字符(字节为单位的。输入 输出的数据流的开始和结束仅受程序控制而不受物理符 号(如回车换行符控制。 也就是说,在输出时不会自动增加回车换行符以作为记 录结束的标志,输入时不以回车换行符作为记录的间隔 (事实上C文件并不由记录构成)。我们把这种文件称为流 式文件。C语言允许对文件存取一个字符,这就增加了 处理的灵活性。 在C语言中,没有输入输出语句,对文件的读写都是用 库函数来实现的。ANSI规定了标准输入输出函数,用它 们对文件进行读写
C文件概述 由前所述,一个C文件是一个字节流或二进制流。它把 数据看作是一连串的字符(字节),而不考虑记录的界限。 换句话说,C语言中文件并不是由记录(record)组成的。 在C语言中对文件的存取是以字符(字节)为单位的。输入 输出的数据流的开始和结束仅受程序控制而不受物理符 号(如回车换行符)控制。 也就是说,在输出时不会自动增加回车换行符以作为记 录结束的标志,输入时不以回车换行符作为记录的间隔 (事实上C文件并不由记录构成)。我们把这种文件称为流 式文件。C语言允许对文件存取一个字符,这就增加了 处理的灵活性。 在C语言中,没有输入输出语句,对文件的读写都是用 库函数来实现的。ANSI规定了标准输入输出函数,用它 们对文件进行读写
C文件概述 有两种对文件的处理方法: 一种叫“缓冲文件系统”: 一种叫“非缓冲文件系统”。 所谓缓冲文件系统是指系统自动地在内存区为每一个正 在使用的文件名开辟一个缓冲区。从内存向磁盘输出数 据必须先送到内存中的缓冲区,装满缓冲区后才一起送 到磁盘去。如果从磁盘向内存读入数据,则一次从磁盘 文件将一批数据输入到内存缓冲区充满缓冲区),然后 再从缓冲区逐个地将数据送到程序数据区(给程序变量)。 如下图所示。缓冲区的大小由各个具体的C版本确定, 一般为512字节
C文件概述 有两种对文件的处理方法: 一种叫“缓冲文件系统” ; 一种叫“非缓冲文件系统” 。 所谓缓冲文件系统是指系统自动地在内存区为每一个正 在使用的文件名开辟一个缓冲区。从内存向磁盘输出数 据必须先送到内存中的缓冲区,装满缓冲区后才一起送 到磁盘去。如果从磁盘向内存读入数据,则一次从磁盘 文件将一批数据输入到内存缓冲区(充满缓冲区),然后 再从缓冲区逐个地将数据送到程序数据区(给程序变量)。 如下图所示。缓冲区的大小由各个具体的C版本确定, 一般为512字节
输出文件缓冲区 磁盘 程序数据区 输出 输出 输入文件缓冲区 输入 输入
C文件概述 离提波蝶浩高露乔务朵塑奔接易歪确定大小 在UNX系统下,用缓冲文件系统来处理文本文件,用 非缓冲文件系统处理二进制文件。 用缓冲文件系统进行的输入输出又称为高级(或高层)磁 盘输入输出(高层I/O)。 用非缓冲文件系统进行的输入输出又称为低级(低层)输 入输出系统。 ANSI C标准决定不采用非缓冲文件系统,而只采用缓冲 文件系统。即既用缓冲文件系统处理文本文件,也用它 来处理三进制文件。也就是将缓冲文件系统扩充为可以 处理二进制文件。 本章只介绍ANSI C规定的文件系统以及对它的读写
C文件概述 所谓“非缓冲文件系统”是指系统不自动开辟确定大小 的缓冲区,而由程序为每个文件设定缓冲区。 在UNIX系统下,用缓冲文件系统来处理文本文件,用 非缓冲文件系统处理二进制文件。 用缓冲文件系统进行的输入输出又称为高级(或高层)磁 盘输入输出(高层I/O)。 用非缓冲文件系统进行的输入输出又称为低级(低层)输 入输出系统。 ANSI C标准决定不采用非缓冲文件系统,而只采用缓冲 文件系统。即既用缓冲文件系统处理文本文件,也用它 来处理二进制文件。也就是将缓冲文件系统扩充为可以 处理二进制文件。 本章只介绍ANSI C规定的文件系统以及对它的读写
(二)文件类型指针
(二)文件类型指针