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; }