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;
}
更新文件緩沖區 使用案例

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM