关于文件的初步理解

69 阅读3分钟

一起养成写作习惯!这是我参与「掘金日新计划 · 4 月更文挑战」的第14天,点击查看活动详情

大家好,我是芒果,一名非科班的在校大学生。对C/C++、数据结构、Linux及MySql、算法等领域感兴趣,喜欢将所学知识写成博客记录下来。 希望该文章对你有所帮助!如果有错误请大佬们指正!共同学习交流

作者简介:

1.数据文件与程序文件


程序文件

包括源程序文件(后缀为.c),,目标文件(windows环境后缀为.obj),可执行程序(windows环境后缀为.exe

数据文件

文件的内容不一定是程序,而是程序运行时读写的数据,比如程序运行需要从中读取数据的文件,或者输出内容的文件。

image-20220310223213258

写数据到数据文件

从数据文件中读取数据


2.文件名和文件类型

文件名

一个文件要有一个唯一的文件标识,以便用户识别和引用。
文件名包含3部分:文件路径+文件名主干+文件后缀
例如:c:\code\test.txt
为了方便起见,文件标识常被称为文件名。

image-20220310223222391


文件类型

根据数据的组织形式,数据文件被称为文本文件或者二进制文件。
数据在内存中以二进制的形式存储,如果不加转换的输出到外存,就是二进制文件。

3.操作文件

步骤

  • 1.打开文件
  • 2.读/写文件
  • 3.关闭文件

打开文件的同时会创建一个文件信息区->是一个结构体,返回返回文件信息区的地址。

不同的C编译器的FILE类型包含的内容不完全相同,但是大同小异。每当打开一个文件的时候,系统会根据文件的情况自动创建一个FILE结构的变量,并填充其中的信息。使用者不必关心细节

一般是通过一个FILE的指针来维护这个FILE结构的变量


文件信息区

image-20220310223233878

struct_iobuf {
        char*_ptr;
        int   _cnt;
        char*_base;
        int   _flag;
        int   _file;
        int   _charbuf;
        int   _bufsiz;
        char*_tmpfname;
        };
typedefstruct_iobufFILE;

image-20220310223254274


4.文件指针

FILE是什么

image-20220310223305040

注意:在VS2019中看不到,在VS2013能看到

image-20220310223329200


每个文件打开时,都会生成一个自己的文件信息区,并用文件指针维护他


FILE* pf;	//pf是文件指针变量

定义pf是一个指向FILE类型数据的指针变量。可以使pf指向某个文件的文件信息区(是一个结构体变量)。通过该文

件信息区中的信息就能够访问该文件。也就是说,通过文件指针变量能够找到与它关联的文件。