C语言 文件缓冲区
C语言 文件缓冲区
ANSI C标准采用“缓冲文件系统”处理数据文件。
所谓缓冲文件系统是指系统自动地在内存区为程序中每一个正在使用的文件开辟一个文件缓冲区从内存向磁盘输出数据必须先送到内存中的缓冲区,装满缓冲区后才一起送到磁盘去。
如果从磁盘向计算机读入数据,则一次从磁盘文件将一批数据输入到内存缓冲区(充满缓冲区),然后再从缓冲区逐个地将数据送到程序数据区(给程序变量) 。
磁盘文件的存取:
磁盘文件,一般保存在硬盘、U盘等掉电不丢失的磁盘设备中,在需要时调入内存
在内存中对文件进行编辑处理后,保存到磁盘中
程序与磁盘之间交互,不是立即完成,系统或程序可根据需要设置缓冲区,以提高存取效率
更新文件缓冲区
一、说明
#include <stdio.h>
int fflush(FILE *stream);
功能:更新缓冲区,让缓冲区的数据立马写到文件中。
参数:
- stream:文件指针
返回值:
- 成功:0
- 失败:-1
二、案例
#define _CRT_SECURE_NO_WARNINGS #include <stdio.h> #include <string.h> #include <stdlib.h> #include <math.h> #include <time.h> int main(void) { FILE* fp = fopen("C:/Users/Administrator/Desktop/xsk.txt", "w+"); if (!fp)return -1; char ch; while (1) { scanf("%c", &ch); if (ch == '@') break; // 注:频繁的和硬盘交互损伤硬盘 // 更新缓冲区、实现实时保存 fflush(fp); fputc(ch, fp); } // printf("%ld\n", pos); fclose(fp); return 0; }