10.2文件类型指针 ★文件结构体FE 缓冲文件系统为毎个正使用的文件在內存开辟文件信 息 ◆文件信息用系统定义的名为FILE的结构体描述 ◆FILE定义在 stdio.h中 typedef struct int fd;∥文件号 int cleft;/缓冲区中剩下的字符数 int mode;∥文件操作方式 char*next;∥文件当前读写位置 char*bu;∥文件缓冲区位置 SFILE
10.2 文件类型指针 文件结构体FILE ❖ 缓冲文件系统为每个正使用的文件在内存开辟文件信 息区 ❖文件信息用系统定义的名为FILE的结构体描述 ❖FILE定义在stdio.h中 typedef struct { int _fd; //文件号 int _cleft; //缓冲区中剩下的字符数 int _mode; //文件操作方式 char *_next; //文件当前读写位置 char *_buff; //文件缓冲区位置 }FILE;
★文件类型指针 ☆指针变量说明:FIE*fp1,*fp2*fp3; ◆用法 ●大件打开时,系统自动建立文件结构体,并把指向它的指针 返回來,程序通过这个指针获得文件信息访问文件 ●文件关闭后,它的文件结构体被释放 文件名 文件使用 C程序 方式 操作系统 文件类型指针 磁盘
文件类型指针 ❖指针变量说明: FILE *fp1, *fp2 *fp3; ❖用法: l文件打开时,系统自动建立文件结构体,并把指向它的指针 返回来,程序通过这个指针获得文件信息,访问文件 l文件关闭后,它的文件结构体被释放 文件名 文件使用 方式 文件类型指针 C程序 操作系统 磁盘
10.3缓冲文件系统 系统自动地在内存区为每个正在使用的文件名开辟 个缓冲区,为程序中的每一个文件使用,当执行 读文件的操作时,从磁盘文件将数据先读入内存 “缓冲区”,装满后再从内存“缓冲区”依此读入 接收的变量。执行写文件的操作时,先将数据写入 内存“缓冲区”,待内存“缓冲区”装满后再写入 文件
系统自动地在内存区为每个正在使用的文件名开辟 一个缓冲区,为程序中的每一个文件使用,当执行 读文件的操作时,从磁盘文件将数据先读入内存 “缓冲区”,装满后再从内存“缓冲区”依此读入 接收的变量。执行写文件的操作时,先将数据写入 内存“缓冲区”,待内存“缓冲区”装满后再写入 文件。 10.3 缓冲文件系统
10.3.1文件的打开与关闭 C文件垭作田废数包佥在oh 文件使用方式 含义 人件 rb”(只读) 为输入打开一个文本/二进制文件 “wwb”(只写) 为输出打开或建立一个文本/二进制文件 a/ab”(追加) 向文本/二进制文件尾追加数据 r+rb+”(读写) 为读/写打开一个文本/二进制文件 wb(读写)为读写建立一个文本二进制文件 “a/ab+(读写)为读/写打开或建立一个文本/二进制文件 今功能:按指定方式打开文件 ☆返值:正常打开,为指向文件结构体的指针;打 开失败。为NULL
10.3.1 文件的打开与关闭 C文件操作用库函数实现,包含在stdio.h 文件使用方式:打开文件-->文件读/写-->关闭文件 系统自动打开和关闭三个标准文件: ❖标准输入------键盘 stdin ❖标准输出------显示器 stdout ❖标准出错输出-----显示器 stderr 打开文件fopen ❖函数形式: fopen(文件名,使用文件方式 ) ❖功能:按指定方式打开文件 ❖返值:正常打开,为指向文件结构体的指针;打 开失败,为NULL 例 文件打开与测试 FILE *fp; fp=fopen(“aa.c”,“w”); if(fp==NULL) { printf(“File open error!\n”); exit(0); } 例 FILE *fp; fp= fopen (“c:\\fengyi\\bkc\\test.dat”,”r”); 例 FILE *fp; char *filename=“c:\\fengyi\\bkc\\test.dat” fp= fopen(filename,”r”); “r+/rb+” (读写) “a/ab” (追加) “w/wb” (只写) “r/rb” (只读) “w+/wb+” (读写) “a+/ab+” (读写) 为输入打开一个文本/二进制文件 为输出打开或建立一个文本/二进制文件 为读/写打开一个文本/二进制文件 为读/写建立一个文本/二进制文件 为读/写打开或建立一个文本/二进制文件 向文本/二进制文件尾追加数据 文件使用方式 含义
★文件关闭 fclose ◆作用:使文件指针变量与文件“脱钩”,释放文件结构 体和文件指针 令函数形式: fclose(文件指针) 心功能:关闭文件指针的文件 令返值:正常文件打开时返回的文件类型指针 缓冲文件系统: 不关闭文件可能会丢失数据 输入文件缓冲区 磁盘文件 程序数据区 a 输出文件缓冲区 fclose
文件关闭fclose ❖作用:使文件指针变量与文件“脱钩”,释放文件结构 体和文件指针 ❖函数形式: fclose(文件指针 ) ❖功能:关闭文件指针fp指向的文件 ❖返值:正常关闭为文件打开时返回的文件类型指针 0;出错时,非0 磁盘文件 输出文件缓冲区 输入文件缓冲区 程序数据区 a 缓冲文件系统: fclose 不关闭文件可能会丢失数据