什么是【文件信息区】
本期介绍🍖
主要介绍:什么是文件信息区,文件信息区中存放些什么,文件信息区本质上是什么,文件信息区的作用是什么👀。
每一个正在被使用的文件都会在内存中开辟一块空间,用以存放文件的相关信息(如:文件名、文件大小、文件的位置等等),故称这块空间为文件信息区。每一个文件信息区都会唯一的与一个文件严格绑定在一起,也就是说每一个被打开的文件都会拥有独立的文件信息区。如下图所示:
文件信息区本质上就是个结构体变量,该结构体的类型为FILE
,是编译器设计之初就定义的一种专门用于存放文件信息的类型。在vs2013编译环境中FLIE
的类型声明如下所示:
struct _iobuf
{
char* _ptr;
int _cnt;
char* _base;
int _flag;
int _file;
int _charbuf;
int _bufsiz;
char* _tmpfname;
};
typedef struct _iobuf FILE;
可以看出,FILE就是一个重命名的结构体类型。还值得一提的是,当我们进行文件读写操作的时候文件发生了改变,文件信息区里存放的信息也会跟着变化,所以我们可以说文件信息区维护了文件相关的动作。文件信息区与文件的关系如下图所示:
注意:
1. 不同的C编译器FILE
类型包含的内容是不完全相同的,但都大同小异。
2. 每当打开一个文件,系统会更具文件的情况自动创建一个FILE类型的变量,并填充其中的信息,使用者不必关注细节。
这份博客👍如果对你有帮助,给博主一个免费的点赞以示鼓励欢迎各位🔎点赞👍评论收藏⭐️,谢谢!!!
如果有什么疑问或不同的见解,欢迎评论区留言欧👀。
相关文章:
大半夜排查bug:竟然是同事把Redis用成这鬼样子,坑了我
首先说下问题现象:内网sandbox环境API持续1周出现应用卡死,所有api无响应现象。 刚开始当测试抱怨环境响应慢的时候 ,我们重启一下应用,应用恢复正常,于是没做处理。但是后来问题出现频率越来越频繁,越来越…...
薪资17K,在字节外包工作是一种什么体验...
我17年毕业于一个普通二本学校,电子信息工程学院,是一个很不出名的小本科。大学期间专业知识也没有去认真的学习,所以毕业的时候就随便找了一份工作,在一个小公司做功能测试。 记得那时候税前薪资大概是7k左右,因为是…...
mybatis-plus批量更新太慢,如何解决?
最近使用mybatis-plus的 saveOrUpdateBath 和saveBath接口执行特别慢,数据量大时往往需要十几分钟,打开日志查看原来批量操作也是循环单条数据插入的,那有没有批量更新的办法呢?? mybatis-plus 提供了一个自定义方法s…...
收藏 | C语言最常用的贪心算法
01 基本概念 贪心算法是指在对问题求解时,总是做出在当前看来是最好的选择。也就是说,不从整体最优上加以考虑,只做出在某种意义上的局部最优解。贪心算法不是对所有问题都能得到整体最优解,关键是贪心策略的选择,选…...
初识Shell脚本
1.1 什么是Shell脚本 通俗讲,Shell脚本就是包含一系列命令的文件。Shell读取该文件并执行其中的命令。Shell的独特之处在u它既是系统强大的命令行接口,又是脚本语言解释器。命令行中完成的大部分事情,脚本中都可以搞定。 1.2 创建并执行She…...