第8章C的文件操作函数
1.
2.
3.
本章讲述内容:
4.
C语言能够处理的文件形式;
C语言文件的结构类型及其指针;
文件的打开和关闭函数;
有关文件的读、写函数;
5.
有关文件的操作函数。
文件及文件型指针
.
C的文件概念
所谓“文件”,是指存储在外部设备上的、以名字作为标识的数据集合。如今大都把文件存储在磁盘上,因此统称其为磁盘文件。
所谓“文本文件”,是把内存中的数据转变成相应的ASCII码值形式,然后存放在磁盘上。因此,磁盘上每个字节存放的内容是ASCII码值,表示一个字符。
所谓“二进制文件”,是把内存中的数据按其在内存中的存储形式原样存放到磁盘上去。
.
.
例:
考察整数2008 在内存中的存放,以文本文件形式在磁盘上的存放,以二进制文件形式在磁盘上的存放。
(1)
数值2008在内存的存储形式:
(2)
数值2008以文本形式在磁盘的存储形式:
(3)
数值2008以二进制形式在磁盘的存储形式:
0 0 0 0 0 1 1 1
1 1 0 1 1 0 0 0
0 0 0 0 0 1 1 1
1 1 0 1 1 0 0 0
0 0 1 1 0 0 1 0
0 0 1 1 0 0 0 0
0 0 1 1 0 0 0 0
0 0 1 1 1 0 0 0
‘2’
‘0’
‘0’
‘8’
.
数据按文本形式存储在磁盘上,占用的存储空间多,存储时要花费转换时间。但以这种形式存储,一个字节代表一个字符,便于对字符进行逐个处理,也便于输出显示。
.
数据按二进制形式存储在磁盘上时,无须花费转换时间,占用空间少。但字节不与字符对应,因此不能直接输出显示。
在使用C的文件操作函数时,正确指定磁盘文件所在路径非常重要。路径不对,系统就找不到文件,也就无法对该文件进行任何处理了。
.
C语言里,把进行输入/输出的终端设备(键盘、显示器)视为文件,统称为“标准设备文件”。最主要有3个:与键盘对应的标准输入文件;与显示屏对应的标准输出文件;与显示屏对应的标准出错信息文件。
.
.
在将输入/输出终端设备与“文件”联系起来后,从键盘上读取数据时,可用C提供的文件操作函数,改为从标准输入文件(即是键盘)里读取;往屏幕上写数据,可用C提供的文件操作函数,改为往标准输出文件(即是显示屏)里写。
.
所谓“缓冲文件系统”,即是输出时,先将数据送到内存缓冲区,缓冲区装满后,才将整个缓冲区的内容一次写入磁盘;输入时,先把磁盘中的一块数据读入到内存缓冲区,然后再从缓冲区中把需要的数据挑出来,送到程序规定的数据区中。整个处理过程如图所示。
磁盘
输入
输出
输入文件缓冲区
输出文件缓冲区
输出
输入
程序数据区
内存
C的文件结构及其指针
C语言中,把文件视为是具有“FILE”结构类型的数据,系统在“”头文件里给出了它的定义。
.
FILE结构类型的形式大致为:
typedef struct iobuf
{
int fd; /* 文件描述符*/
int mode; /* 文件操作模式*/
int cleft; /* 文件缓冲区剩余字节数*/
char *nextc; /* 下一个待处理字节地址*/
char *buff; /* 文件缓冲区首地址*/
}FILE;
.
C语言中的每个文件,都有一个FILE型结构变量与之对应,只要知道其地址,就可通过它里面记录的信息,实现访问这个文件的目的。所以,指向FILE型结构变量的指针(简称“文件指针”)对于文件的使用是极其重要的。
.
.
程序中可通过下面的方法来说明变量fp是一个文件指针:
FILE *fp;
把某个文件的FILE结构变量地址赋给它后,就在这个文件和文件指针fp之间建立起了联系,C语言就把这个指针作为该文件的标识,在程序中就可通过fp来访问这个文件了。
文件打开函数:fopen()
文件的打开与关闭函数
所谓“打开文件”,即是建立起某个文件与一个FILE变量的联系,使得能够通过这个FILE变量,对该文件进行输入或输出操作。
.
.
所谓“关闭文件”,即是切断文件与所对应FILE变量的联系,从而不能进行输入或输出操作。
文件打开函数fopen()的函数头格式是:
.
FILE *fopen (<文件名>, <文件操作模式>)
其中<文件名>是所要打开的、包含路径在内的一个文件的名字,它是一个字符串常量(即用双引号括起来);<文件操作模式>是一个字符串常量,指明欲打开文件的性质(是文本文件还是二进制文件),以及被打开后是用于读、写还是又读又写。
如果正确地将所
《C语言》课件-8 来自淘豆网m.daumloan.com转载请标明出处.