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

嵌入式开发之刷新流

什么样情况下流自动刷新缓冲区?

  • 全缓冲:缓冲区满的时候刷新缓冲区;
  • 行缓冲:当缓冲区满的时候或者遇到‘\n’行符的时候刷新缓冲区;
  • 流关闭的时候,检查如果流的缓冲区还有数据,则刷新。
  • fflush函数手动刷新缓冲区;

int fflush(FILE *fp);

  • 成功时返回0;出错时返回EOF;
  • 将流缓冲区中的数据写入实际的文件;
  • Linux下只能刷新输出缓冲区;
代码示例:
#include <stdio.h>

int main()
{
   FILE *fp;
   if((fp = fopen("test.txt","w")) == "NULL"){
      perror("fopen");
      return -1;
   }
   fputc('a',fp);  //只是写到流的缓冲区
   fflush(fp);  //强制刷新缓冲器
   while(1);
   return 0;
}

定位流 ftell/fseek/rewind

读写流时,当前读写位置会自动后移。

1、long ftell(FILE *stream); //返回指定流的当前读取位置,出错时返回EOF。

2、long fseek(FILE *stream,long offset,int whence); //,成功返回0,出错返回EOF。设定当前流的读取位置,whence是一个


http://www.kler.cn/a/378300.html

相关文章:

  • leetcode 2920. 收集所有金币可获得的最大积分
  • 【Prometheus】Prometheus如何监控Haproxy
  • 计算机网络之网络层
  • 为AI聊天工具添加一个知识系统 之63 详细设计 之4:AI操作系统 之2 智能合约
  • 实战经验:使用 Python 的 PyPDF 进行 PDF 操作
  • 如何实现网页不用刷新也能更新
  • SAO-LSSVM分类预测 | SAO-LSSVM雪消融算法优化最小二乘支持向量机多特征分类预测
  • JavaScript 进阶 - 第4天 (黑马笔记)
  • [JAVAEE] 面试题(二) - CAS 和 原子类
  • Java项目实战II基于Spring Boot的秒杀系统设计与实现(开发文档+数据库+源码)
  • 使用Markdown编写适用于GitHub的README.md文件的目录结构
  • css-flex布局属性
  • Python爬虫:揭开店铺详情的神秘面纱
  • 【Jenkins】 上传docker包并推送到远程仓库
  • 构建您自己的 RAG 应用程序:使用 Ollama、Python 和 ChromaDB 在本地设置 LLM 的分步指南
  • 独立开发的个人品牌打造:个人IP与独立开发的结合
  • 如何将epub转换成word?
  • HTML 基础标签——表单标签<form>
  • C语言中的野指针以及避免野指针的常用方式
  • 字符串匹配——KMP算法
  • 六、Go语言快速入门之数组和切片
  • 斩!JavaScript语法进阶
  • GDB(GNU Debugger)的使用教程
  • 代码随想录算法训练营第三十四天|Day34 动态规划
  • 四川无人机航测服务公司产品应用案例
  • 深度学习揭秘:神经网络如何模拟人脑