当前位置: 首页 > backend >正文

嵌入式开发学习日志(linux系统编程--文件读写函数)Day24

一、系统编程

        标准oi 【输入输出】  stdio.h

        头文件 :stdio.h  ==>标准输入输出头文件;/usr/include/stdio.h

二、文件操作

 1、关于文件操作的步骤

(1)打开文件;

(2)io操作,读写操作;

(3)关闭文件;

        注:FILE *是一个结构体,包含文件信息;

                文件读写的位置相同,都在文件流指针指向的位置;

2、打开文件【fopen(  )】

         FILE *fopen(const char *pathname, const char *mode);

【const char *pathname】:想要打开的文件名;

【const char *mode】:打开文件的模式;

【r】:打开只读,文件流指针在最开始;

【r+】:打开读写,文件流指针在最开始;

【r】和【r+】目标文件必须存在;

【w】:将原来文件清空或创建这个文件,读,文件流指针在最开始;

【w+】:将原来文件清空或创建这个文件,读写,文件流指针在最开始;

【w】和【w+】可以进行创建文件;

3、单个字符写操作(一次只能写一个字符)

                int fputc(int c, FILE *stream);

【int c】:要写入的字符;

【FILE *stream】:操作的文件名;

eg:

 4、文件的读取

        int fgetc(FILE *stream);

【FILE *stream】:操作的文件名;

注意:文件内容会读取完;

        文件内容读取完返回的为【EOF】;

        对比两个文件:【vimdiff  文件名1    文件名2】

        【op  -c】可以查看文档以字符形式打印;

5、文件的关闭

                int fclose(FILE *stream);

        【FILE *stream】:操作的文件名;

        【cat  文件名】可以查看文件中的内容;

eg:

eg:(1)用fgetc和fputc实行复制粘贴

 

 通用写法:

 三、fgets/fputs

        1、fgets 读文件————一次一行

原型:char *fgets(char *s, int size, FILE *stream);

【char *s】:将读取到的数据存放在数组中;大小建议开1~4k

【int size】:所需要读取的大小;   

【FILE *stream】:操作的文件名;

如果大小不够,则存放的数据为sizeof - 1个;

返回值:成功,返回值指向有效数据的首地址,一般等于s的地址;

                失败或者处于文件末尾返回NULL;

eg:

2、fputs写入文件————一次一行

原型: int fputs(const char *s, FILE *stream);

【const char *s】:表示写入的内容;

【FILE *stream】:操作的文件名;

        eg:

eg:(1)读取指定的文件;

 

 (2)将一个文件拷贝到另一个文件中;

 通用写法:

http://www.xdnf.cn/news/7498.html

相关文章:

  • vr制作公司提供什么服务?
  • Linux跨网络通信中IP与MAC的作用
  • Electron+vite+vue3 从0到1搭建项目,开发Win、Mac客户端
  • spark调度系统核心组件SparkContext、DAGSchedul、TaskScheduler介绍
  • 项目管理进阶:基于IPD流程的项目管理部分问题及建议书【附全文阅读】
  • 怎么样进行定性分析
  • 交通拥堵预测器(python)
  • Linux云计算训练营笔记day11【Linux CentOS7(cat、less、head、tail、lscpu、lsblk、hostname、vim、which、mount、alias)】
  • Python训练营打卡——DAY30(2025.5.19)
  • 苹果的人工智能领域慢热
  • esp32课设记录(三)mqtt通信记录 附mqtt介绍
  • thinkphp6实现统一监听并记录所有执行的sql语句除查询外
  • 2021-10-29 C++求位数及各位和
  • MathType公式如何按照(1)(2)…编号
  • 定积分的“偶倍奇零”性质及其使用条件
  • 软件设计师“关系模式和关系代数”真题考点分析——求三连
  • Mergekit——高频合并算法 TIES解析
  • C 语言学习笔记(函数2)
  • 【实战教程】如何添加git仓库的子模块
  • ipynb文件的一键访问(顺带启动jupyter)实现程序演示
  • Excel导入校验
  • 获得AI相关认证证书对个人职业发展的具体帮助有哪些?
  • mybtais plus使用拦截器打印完整SQL语句
  • Pyro:基于PyTorch的概率编程框架
  • 代码审查服务费用受哪些因素影响?如何确定合理报价?
  • 《Opensearch-SQL》论文精读:2025年在BIRD的SOTA方法(Text-to-SQL任务)
  • reshape/view/permute的原理
  • 7-2 银行业务队列简单模拟
  • 【PhysUnits】4.5 负数类型(Neg<P>)算术运算(negative.rs)
  • Node.js 实战八:服务部署方案对比与实践