文件类型指针 缓冲文件系统中,关键的概念是“文件指针”。每个被使用的 文件都在内存中开辟一个区域,用来存放文件的有关信息(如文件 的名字,文件状态及文件当前位置等)。这些信息是保存在一个结 构体类型变量中的,该结构体类型由系统定义取名为FILE 般的C中,在 stdio.h文件中有以下的类型定义: typedef struct dint fd /文件号* int cleft 缓冲区中剩下的字符 int modes /文件操作模式 char x nextc /下一个字符位置 char s buff: /文件缓冲区位置 3 FILE:
文件类型指针 缓冲文件系统中,关键的概念是“文件指针”。每个被使用的 文件都在内存中开辟一个区域,用来存放文件的有关信息(如文件 的名字,文件状态及文件当前位置等)。这些信息是保存在一个结 构体类型变量中的,该结构体类型由系统定义,取名为FILE。一 般的C中,在stdio.h文件中有以下的类型定义: typedef struct { int _fd; /*文件号*/ int _cleft; /*缓冲区中剩下的字符*/ int _mode; /*文件操作模式*/ char *_nextc; /*下一个字符位置*/ char *_buff; /*文件缓冲区位置*/ } FILE;
有了FIE类型之后,可以用它来定义若干FIE类型的变 量,以便存放若干个文件的信息。例如,可以定义文件型指 针变量如 FILE 出f 邱p是一个指向FIE类型结构体的指针变量,可以使印指向 个文件的结构体变量,从而通过该结构体变量中的文件信 息能够访问该文件,也就是说,通过文件指针变量能够找到 与它相关的文件。如果有n个文件,般应设n个指针(指向 FILE类型结构体的指针变量,使它们分别指向n个文件(确切 地说指向该文件的信息结构体),以实现对文件的访问
有了FILE类型之后,可以用它来定义若干FILE类型的变 量,以便存放若干个文件的信息。例如, 可以定义文件型指 针变量,如 FILE *fp; fp是一个指向FILE类型结构体的指针变量,可以使fp指向 一个文件的结构体变量,从而通过该结构体变量中的文件信 息能够访问该文件,也就是说,通过文件指针变量能够找到 与它相关的文件。如果有n个文件,一般应设n个指针(指向 FILE类型结构体的指针变量),使它们分别指向n个文件(确切 地说,指向该文件的信息结构体),以实现对文件的访问
文件的打开( (fopen函数) 与其它高级语言一样对文件读写之前应该“打开” 该文件,在使用结束之后应关闭该文件。 fopen函数的调用方式为: FILE *fp; fp= fopen(文件名使用文件方式) 例如 fp= fopen(“A1”,”r”) 它表示要打开名字为A1的文件使用文件方式为“读 入”,open函数带回指向A1文件的指针并赋给印,这样 邱就和A1相联系了,或者说fp指向A1文件
文件的打开(fopen函数) 与其它高级语言一样,对文件读写之前应该“打开” 该文件,在使用结束之后应关闭该文件。 fopen函数的调用方式为: FILE *fp; fp=fopen(文件名,使用文件方式); 例如: fp=fopen(“A1”,”r”) 它表示:要打开名字为A1的文件,使用文件方式为“读 入”,fopen函数带回指向A1文件的指针并赋给fp,这样 fp就和A1相联系了,或者说,fp指向A1文件
可以看出,在打开一个文件时通知给编译系统以下三 个信息 (1)需要打开的文件名,也就是准备访问的文件的 名字。 (2)使用文件的方式(读还是写等)。 (3)让哪一个指针变量指向被打开的文件
可以看出,在打开一个文件时,通知给编译系统以下三 个信息: (1)需要打开的文件名,也就是准备访问的文件的 名字。 (2) 使用文件的方式(读还是写等)。 (3) 让哪一个指针变量指向被打开的文件
使用文件方式如下表: 文件使用方式 含义 “r”(只读) 为输入打开一个文本文件 (只写) 为输出打开一个文本文件 (追加 向文本文件尾增加数据 “rb”(只读) 为输入打开一个二进制文件 “wb(只写) 为输出打开一个二进制文件 ab”(追加) 向二进制文件尾增加数据 “r+”(读写) 为读/写打开一个文本文件 “w+”(读写) 为读/写建立一个新的文本文件 “a+”(读写) 为读/写打开一个文本文件 rb+”(读写) 为读/写打开一个二进制文件 “wb+”(读写 为读/写建立一个新的二进制文件 “ab+”(读写) 为读/写打开一个二进制文件
文件使用方式 含义 “r” (只读) 为输入打开一个文本文件 “w” (只写) 为输出打开一个文本文件 “a” (追加) 向文本文件尾增加数据 “rb” (只读) 为输入打开一个二进制文件 “wb” (只写) 为输出打开一个二进制文件 “ab” (追加) 向二进制文件尾增加数据 “r+” (读写) 为读/写打开一个文本文件 “w+” (读写) 为读/写建立一个新的文本文件 “a+” (读写) 为读/写打开一个文本文件 “rb+” (读写) 为读/写打开一个二进制文件 “wb+” (读写) 为读/写建立一个新的二进制文件 “ab+” (读写) 为读/写打开一个二进制文件 使用文件方式如下表: