C语言进阶学习日志:文件操作函数 及 使用(一)

本文涉及的产品
日志服务 SLS,月写入数据量 50GB 1个月
简介: C语言进阶学习日志:文件操作函数 及 使用

为什么要文件操作:

因为我们每次运行自己写得程序的时候 录入数据结束的时候 这些数据就销毁了 当我们还想再回来查找我们之前保存的那些数据时候 就找不到了,这样我们数据的长久性就得不到保证所以就有了文件的操作来保证数据的长久性 使数据存储我们电脑的硬盘上

一般来讲程序设计我们说的文件主要分为程序文件 和 数据文件


程序文件:

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

eff74a51f2e3487cb7188bff41b28498.png 这里的.c文件就是源程序文件 在我们编译了之后 我们这个文件就会有个debug文件夹

6ee700b5427c497c820d6a85ba8980d6.png

 点开debug文件 里面 有可执行程序(.exe)和目标文件(.obj)

d3bd31bb8a56409eaed3878fa7c2decc.png

目标文件会通过链接生成可执行程序


数据文件:

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

614351a4fb204d5094ab519df2ba277b.png

额外给大家提一个东西就是文件名:一个要有一个唯一的文件标识,以便用户识别使用

文件名包括:文件路径+文件名主干+文件后缀


文件指针:

每个被使用的文件都在内存中开辟了一个对应的文件信息区,用来存放文件的相关信息(文件的名字 文件所在的位置)这些信息保存在一个结构体变量中 该结构体类型是具有系统声明的 取名 FILE (注意不同的编译齐FILE中所包含的信息不同)


文件的打开和关闭:

我们肯定在要使用一个文件的时候 往这个文件里面写入数据的时候 是要把这个文件打开的 打开后才能往里面写入数据的 同样的道理在使用完之后我们是要把这个文件关闭的

这里就要用到fopen 和 fclose 函数

20bc7e9e99654ff798c606c9a894c8a5.png


第一个参数是你要打开的文件名 第二个参数是你打开这个文件的方式 返回的是这个文件对应文件信息区的地址

83cf16fbe2f94180b4c2fe355cac95c6.png

这些是不同打开方式所对应的符号:

"r" :打开文件来读取 如果这个文件不存在或者没有找到那么打开文件失败(返回NULL)

"w":打开一个空的文件用来写入数据 如果打开的文件存在 那么打开的文件里面的内容会被清楚掉 如果这个文件不存在那么会自动创建一个文件

如果说你打开的文件不在你这个程序所在的文件夹那么你打开的文件前面就要加上这个文件的路径

#include <stdio.h>
int main()
{
    FILE* p= fopen("test.txt","w");
    FIlE* p= fopen("D:\\VSC\\test.txt","w");注意\要用双斜杠 避免单斜杠与后面结合变成转义字符
}


其实除了上面的符号 关于文件使用方式的符号还有很多:>

a7778fb057ec4b9e8ab577668cff396c.png

相关实践学习
日志服务之使用Nginx模式采集日志
本文介绍如何通过日志服务控制台创建Nginx模式的Logtail配置快速采集Nginx日志并进行多维度分析。
目录
相关文章
|
1月前
|
PyTorch 算法框架/工具
Pytorch学习笔记(七):F.softmax()和F.log_softmax函数详解
本文介绍了PyTorch中的F.softmax()和F.log_softmax()函数的语法、参数和使用示例,解释了它们在进行归一化处理时的作用和区别。
420 1
Pytorch学习笔记(七):F.softmax()和F.log_softmax函数详解
|
1月前
|
存储 编译器 C语言
如何在 C 语言中判断文件缓冲区是否需要刷新?
在C语言中,可以通过检查文件流的内部状态或使用`fflush`函数尝试刷新缓冲区来判断文件缓冲区是否需要刷新。通常,当缓冲区满、遇到换行符或显式调用`fflush`时,缓冲区会自动刷新。
|
1月前
|
存储 编译器 C语言
C语言:文件缓冲区刷新方式有几种
C语言中文件缓冲区的刷新方式主要包括三种:自动刷新(如遇到换行符或缓冲区满)、显式调用 fflush() 函数强制刷新、以及关闭文件时自动刷新。这些方法确保数据及时写入文件。
|
1月前
|
Arthas 监控 Java
JVM知识体系学习七:了解JVM常用命令行参数、GC日志详解、调优三大方面(JVM规划和预调优、优化JVM环境、JVM运行出现的各种问题)、Arthas
这篇文章全面介绍了JVM的命令行参数、GC日志分析以及性能调优的各个方面,包括监控工具使用和实际案例分析。
46 3
|
1月前
|
存储 Prometheus NoSQL
大数据-44 Redis 慢查询日志 监视器 慢查询测试学习
大数据-44 Redis 慢查询日志 监视器 慢查询测试学习
25 3
|
1月前
|
C语言
【C语言】探索文件读写函数的全貌(三)
【C语言】探索文件读写函数的全貌
|
1月前
|
存储 C语言
【C语言】探索文件读写函数的全貌(二)
【C语言】探索文件读写函数的全貌
|
1月前
|
数据采集 监控 Java
SpringBoot日志全方位超详细手把手教程,零基础可学习 日志如何配置及SLF4J的使用......
本文是关于SpringBoot日志的详细教程,涵盖日志的定义、用途、SLF4J框架的使用、日志级别、持久化、文件分割及格式配置等内容。
157 0
SpringBoot日志全方位超详细手把手教程,零基础可学习 日志如何配置及SLF4J的使用......
|
2月前
|
Kubernetes API Docker
跟着iLogtail学习容器运行时与K8s下日志采集方案
iLogtail 作为开源可观测数据采集器,对 Kubernetes 环境下日志采集有着非常好的支持,本文跟随 iLogtail 的脚步,了解容器运行时与 K8s 下日志数据采集原理。
|
1月前
|
Python
log日志学习
【10月更文挑战第9天】 python处理log打印模块log的使用和介绍
35 0
下一篇
无影云桌面