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

更新文件缓冲区 使用案例

原文地址:https://www.cnblogs.com/xiangsikai/p/12382104.html

时间: 2024-11-06 21:34:33

C语言 文件缓冲区的相关文章

C语言文件读写操作总结

C语言文件操作 一.标准文件的读写 1.文件的打开 fopen() 文件的打开操作表示将给用户指定的文件在内存分配一个FILE结构区,并将该结构的指针返回给用户程序,以后用户程序就可用此FILE指针来实现对指定文件的存取操作了.当使用打开函数时,必须给出文件名.文件操作方式(读.写或读写),如果该文件名不存在,就意味着建立(只对写文件而言,对读文件则出错),并将文件指针指向文件开头.若已有一个同名文件存在,则删除该文件,若无同名文件,则建立该文件,并将文件指针指向文件开头. fopen(char

C语言文件操作函数的编写

 编写文件操作的头文件 /************************************************************************** Copyright(C)    :2014-08-5 toto Filename       :file.h Author          :涂作权 Version         :V1.1 Date            :2014-08-05 Description     :文件操作的头文件 Others  

C 语言文件操作

1. 数据流:     程序与数据的交互以流的形式进行.fopen 即打开数据流,fclose 即刷新数据流.     所谓数据流,是一种抽象,表示这段数据像流一样,需要逐步接收,不能随机存取:也意味着是一段连续的内容,每块数据之间的顺序是确定的.比如一个很大的文件,不能一次性加载到内存里面,无法直接获取文件任意位置的内容,只能逐渐加载到内存.     比如 TCP 被抽象为 stream 而 UDP 被抽象为 block.     2. 缓冲区:     fopen 时, 磁盘 --> 缓冲区

C语言文件的概念和文件指针

1 C语言文件的概念 在程序中,当调用输入函数从外部文件中输入数据赋给程序中的变量时,这种操作成为“输入”或“读”:当调用输出函数把程序中变量的值输出到外部文件中时,这种操作称为“输出”或“写”. C 语言中,对于输入.输出的数据都按“数据流”的形式进行处理.也就是说,输出时,系统不添加任何信息:输入时,逐一读入数据,直到遇到 EOF 或文件结束标志就停止.C 程序中的输入.输出文件都以数据流的形式存储在介质上. 对文件的输入.输出方式也称为“存取方式”.C 语言中,有两种对文件的存取方式:顺序

c语言文件操作函数

c语言文件操作函数大全 fopen(打开文件) 相关函数 open,fclose 表头文件 #include<stdio.h> 定义函数 FILE * fopen(const char * path,const char * mode); 函数说明 参数path字符串包含欲打开的文件路径及文件名,参数mode字符串则代表着流形态. mode有下列几种形态字符串: r 打开只读文件,该文件必须存在. r+ 打开可读写的文件,该文件必须存在. w 打开只写文件,若文件存在则文件长度清为0,即该文件

C语言文件操作函数大全(超详细)

C语言文件操作函数大全(超详细) 作者: 字体:[增加 减小] 类型:转载 本篇文章是对C语言中的文件操作函数进行了详细的总结分析,需要的朋友参考下 fopen(打开文件)相关函数 open,fclose表头文件 #include<stdio.h>定义函数 FILE * fopen(const char * path,const char * mode);函数说明 参数path字符串包含欲打开的文件路径及文件名,参数mode字符串则代表着流形态.mode有下列几种形态字符串:r 打开只读文件,

关于C语言文件操作

关于C语言的文件操作之前我也写过一篇博客来介绍,但是当时写的很不全面,只是简单的使用了一下 ,今天再从新学习一下. 1.文件的写 首先还是先看一个简单的例子: include<stdio.h> int main() { FILE *fp; //声明一个文件指针,指向文件缓冲区的首地址 char ch; if( (fp = fopen("file_1.txt","a")) == NULL ) //w+打开可读写文件,若文件存在则清零,不存在则新建文件,a

C语言 文件操作的头文件

计算机文件是以计算机硬盘为载体存储在计算机上的信息集合,是存储在某种长期储存设备上的一段数据流.在C语言中用一个指针变量指向一个文件,这个指针称为文件指针.通过文件指针就可对它所指的文件进行各种操作,C语言规定该文件指针类型为FILE型.文件的信息有这个FILE型的结构体来进行定义. FILE的结构体的定义如下 typedef struct { short level; // 缓冲区“满”或“空”的程度 unsigned flags; // 文件状态标志 char fd; // 文件描述符 un

C语言文件

一切数据皆文件,大部分设备也是文件 一切数据处理程序运行都是在内存中完成 文件的概念 文件用来存放程序.文档.音频.视频数据.图片等数据的 文件就是存放在磁盘上的,一些数据的集合. 文件缓冲区是库函数申请的一段内存,由库函数对其进行操作,程序员没有必要知道存放在哪里,只需要对文件操作的时候的一些缓冲特点即可 行缓冲 标准io库函数,往标准输出(屏幕)输出东西的时候是行缓冲的 所谓的行缓冲就是缓冲区碰到换行符的时候才刷新缓冲区 全缓冲 标准io库函数,往普通文件读写数据的,是全缓冲的 碰到换行符也