文件是一种信息的存储方式,它指一组已经命名的,存储的在外存储器上的,具有相同性质的信息的集合,文件在程序设计中是一个重要的概念,一个程序的运行往往避免不了要从文件中提取一些数据等。。
文件的概述:文件时信息的集合,是信息形成的数据流。每个文件都有一个文件名来识别这个文件。
简历了一个树状的层次结构的目录进行管理,文件被存放在不同层次的目录中。文件由路径和文件名唯一确定。C语言本身没有直接输入输出的语句,都是通过系统提供的库函数来完成的。
在C语言中用一个指针变量指向一个文件, 这个指针称为文件指针。通过文件指针就可对它所指的文件进行各种操作。 定义说明文件指针的一般形式为: FILE* 指针变量标识符; 其中FILE应为大写,它实际上是由系统定义的一个结构(如下图, 该结构中含有文件名、文件状态和文件当前位置等信息)。
#ifndef _FILE_DEFINED
struct _iobuf { //文件指针在头文件中的定义,打包许多内容如下:
char *_ptr;
int _cnt;
char *_base;
int _flag;
int _file;
int _charbuf;
int _bufsiz;
char *_tmpfname;
};
typedef struct _iobuf FILE; //说明成一个FILE形文件指针
#define _FILE_DEFINED
#endif /* _FILE_DEFINED */
C语言中根据文件中数据的存储形式将文件分为文本文件和二进制文件。文本文件又称为ASCII文件,每个字节存放一个ASCII码,表示一个字符。例如对于一个short整数,1024它由5个数字字符组成,在文本文件中为了存储该整数,就需要5个字节,每个字节存放对应的ASCII值。而二进制文件是对数据的真实反应,它以数据的二进制形式进行存储在文件中,如short整数1024他的二进制为0010011110001100他在内存中占两个字节。。
另外,文本文件可以用文本编译器打开,查看其中的内容,而二进制文件被文本编辑器打开的时候则显示乱码。无论是文本文件还是二进制文件,C语言都将他看做一个字节序列,表现为一个字节流或二进制流,C语言按照这种流来操作文件,具有较强的灵活性,不受任何特殊字符的干扰。
C语言中文件不仅指磁盘文件,而且对外部设备(打印机等)也作为文件对待,成为设备文件。对设备文件的输入输出等同于对磁盘文件的读写,通常吧显示器定义为一个标准输出文件。
未完待续……