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

嵌入式day20

feof:

检测文件是否到达结尾

ferroe:

检测文件是否发生错误

标准IO之文件定位

fseek()

SEEK_END 指向最后一个字节的后一个,继续加,写文件,会将文件扩大

ftell()

获取文件大小

pos指向最后一个字节的下一位,如果需要进行复制操作,需要将pos复位到第一个字节

rewind()

文件复位,等效于 fseek(stream, 0, SEEK_END)

缓冲区:为了匹配高速和低速设备(内核里)

文件IO

操作系统为了方便用户使用系统功能而对外提供的一组系统函数,称之为系统调用。其中有一个 文件IO,一般都是对设备文件操作,当然也可以对普通文件进行操作。

文件IO 是一个基于Linux内核的没有缓存的IO机制

特性:

1、没有缓存区

2、操作对象不再是流(FILE*),而是文件描述符(int 0-1023)

3、文件描述符

很小的非负整数 int 0 - 1023

内核每打开一个文件就会获得一个文件描述符

unistd.h (posix 标准库)更靠近内核

stdio.h(c 库)

步骤:

open

read / write

close

函数接口:

open

打开或创建一个文件

pathname 文件名

flags 标签

中间用 | 隔开

mode 读写执行权限 (0666 / 0777)

返回值:

成功 返回文件描述符(fd)

失败 返回 -1

write

通过文件描述符向文件中输入字符串

fd 文件描述符

buf 要写入文件的字符串的首地址

count 写入字符的个数(填写buf的有效长度)

返回值:

成功 返回实际写入的个数(0不代表错误)

失败 返回 -1

close

read

通过文件描述符读取文件中的数据

fd 文件描述符

buf 存放数据空间的首地址

count 要读到数据的个数(可比实际的内容略大)

返回值:

成功 返回读到数据的个数

失败 返回-1

读到文件结尾 返回0

lseek

定位光标的位置

fd 文件描述符

offset 偏移量 正:向后偏移 负:向前偏移 零:不偏移

whence SEEK_SET SEEK_CUR SEEK_END

返回值:

成功 返回偏移量

失败 返回-1

覆盖写

cp:

-----------------------

嵌入式学习第二十天,今天学习了标准IO后面剩余的部分,同时也学习了文件IO的一些函数,还有标准IO的缓冲区的概念,要熟记缓冲区输出的条件。后面的学习继续加油啦!

相关文章:

嵌入式day20

feof: 检测文件是否到达结尾 ferroe: 检测文件是否发生错误 标准IO之文件定位 fseek() SEEK_END 指向最后一个字节的后一个,继续加,写文件,会将文件扩大 ftell() 获取…...

UE4 SLUA IOS打包报错解决办法

IOS打包报错:Fatal error "lua.h" file not found : SLua Unreal 在IOS远程打包编译的时候 Exteral没有copy过去,导致lua.h文件报错找不到,看了网上也没有写解决办法 错误信息截图: github上也有很多遇到改…...

SpringDI(依赖注入) 以及SpringIOC容器对Bean管理

一、SpringDI(依赖注入) 1.DI依赖注入 1.1 Spring DI的理解 关键字:名词解释 DI( Dependecy Inject,中文释义:依赖注入)是对Ioc概念的不同角度的描述,是指应用程序在运行时,每一个bean对象都依赖IoC 容器…...

伯克利Linux系统管理: 脚本编写学习 课堂与实验(系统简洁保姆级学习)

Linux系列文章目录 补充内容 Windows通过SSH连接Linux 第一章 Linux基本命令的学习与Linux历史 第二章(上) Vim课堂与实验 文章目录 Linux系列文章目录一、前言二、学习内容:2.1 上课内容2.1.1 为什么要学习脚本编写?2.1.2 Bash编程语言2.1.3 SheBang2.…...

探索腾讯云AI代码助手的效能与实用性

前言开发环境配置项目实例应用一:功能介绍二:项目测试FFmpeg二次开发SDL应用加密播放器 帮助提升建议结语 ​ 前言 腾讯云的AI代码助手是一款强大的编码辅助工具,利用混元代码大模型技术,提供技术对话、代码补全、代码诊断和优化…...

清华大学终于把Python整理成了《漫画书》

前言 随着人工智能的发展,Python近两年也是大火,越来越多的人加入到Python学习大军,对于毫无基础的人该如何入门Python呢?小编这里整理了一套python编程零基础自学教程,清华大佬196小时讲完的,全程干货无废…...

有关Linux操作系统中僵尸进程与孤儿进程的理解

目录 一、僵尸进程(僵死状态)1.概念2.进程PID与退出码3.僵尸进程举例4.僵尸进程的危害5.僵尸进程的解决方案 二、孤儿进程1.概念2.特点3.孤儿进程解决僵尸进程 一、僵尸进程(僵死状态) 1.概念 僵死状态形象点说有点像是没死透的…...

Go语言实现依赖注入

文章目录 前言依赖注入是什么依赖注入的好处是什么结构图应用程序上下文接口上下文管理器暴露的功能使用示例最后 前言 你好,我是醉墨居士,欢迎来到我的博客,今天带领大伙使用Go语言实现依赖自动注入,我们不会使用其它的第三方库…...

不仅能防沉迷游戏的防沉迷软件(Python)

介绍 一个有那么一点功能但是又不太保险的防沉迷工具 我脑子进水了才会写这玩意儿 为了变强,我不择手段(笑出zhu jiao 代码 好像没什么用的设定界面 # -*- coding: utf-8 -*- # Environment PyCharm # File_name login |User Pfolg # 2024/…...

数学建模--智能算法之鱼群算法

目录 核心原理 应用与实现 实现步骤 性能分析与改进 鱼群算法在解决哪些具体优化问题方面表现最佳? 如何根据不同的应用场景调整鱼群算法的参数设置以提高其性能? 鱼群算法与其他群体智能优化算法(如遗传算法、粒子群优化)…...

html+css+js前端作业qq音乐官网5个页面 带js

htmlcssjs前端作业qq音乐官网5个页面 带js 有轮播图,tab切换等多种效果 网页作品代码简单,可使用任意HTML编辑软件(如:Dreamweaver、HBuilder、Vscode 、Sublime 、Webstorm、Text 、Notepad 等任意html编辑软件进行运行及修改编…...

【mars3d】加载超图s3m模型说明

建议替换Cesium库,换成 超图版本Cesium mars3d mars3d-supermap ,需要引入的资源为: "mars3d": ["Cesium-supermap/Widgets/widgets.css", //超图版本Cesium "Cesium-supermap/Cesium.js","mars3d/plu…...

LeetCode Hot100 二叉搜索树中第K小的元素

给定一个二叉搜索树的根节点 root ,和一个整数 k ,请你设计一个算法查找其中第 k 小的元素(从 1 开始计数)。 示例 1: 输入:root [3,1,4,null,2], k 1 输出:1示例 2: 输入&#xf…...

CBK-D5-安全测试与开发osg15、20、21

CBK-D5-安全测试与开发osg15、20、21 安全评估与测试 构建安全评估和测试方案 安全测试 旨在验证某项控制措施是否正常运行。 包括自动化扫描、工具辅助的渗透测试、破坏安全性的手动测试。 渗透测试可以每年开展一次,以最大限度地降低费用并减小业务中断的影响。 仅简…...

期权杠杆与期货杠杆的区别是什么?

期权与股指期货在杠杆性上展现出截然不同的特性,这些特性对投资者的策略选择具有深远影响。首先,股指期货采用保证金制度,其杠杆比例是恒定的,无论市场如何波动,投资者在月初设定的十倍杠杆到月尾仍保持不变。相比之下…...

数字人解决方案——音频驱动机器人

音频集成 机器人 标志着 人工智能(AI)。 想象一下,机器人可以通过视觉和听觉导航并与周围环境互动。音频驱动的机器人使这成为可能,提高了它们更高效、更直观地执行任务的能力。这一发展可能会影响到各个领域,包括家庭…...

Linux Tcp 连接 状态 检测 处理

查看不同状态的链接数 netstat -na | awk /^tcp/ {S[$NF]} END {for(a in S) print a, S[a]} 输出如下: TIME_WAIT 2 CLOSE_WAIT 2149 LISTEN 18 ESTABLISHED 214...

String respIson = objectMapper.writeValueAsString(response);

**一、代码解释** 这段代码的作用是使用ObjectMapper(假设是 Jackson 的ObjectMapper)将一个 Java 对象response转换为 JSON 格式的字符串。 1. ObjectMapper: 它是 Jackson 库中用于在 Java 对象和 JSON 之间进行序列化和反序列化的核心类。…...

git squash、merge 、 rebase

Git Merge、Rebase 和 Squash 之间的区别_git squash-CSDN博客...

案例开发-日程管理2第一期(超详细教程、配备图文和源代码注释,没学过也能看懂)

文章目录 一、 项目前期准备1.数据库准备2.导入依赖3.pojo包处理4.dao包处理5.service包处理6.controller包处理7.加密工具类的使用8.页面文件的导入 总结 一、 项目前期准备 1.数据库准备 创建schedule_system数据库并执行如下语句 SET NAMES utf8mb4; SET FOREIGN_KEY_CHE…...

盘古信息PCB行业解决方案:以全域场景重构,激活智造新未来

一、破局:PCB行业的时代之问 在数字经济蓬勃发展的浪潮中,PCB(印制电路板)作为 “电子产品之母”,其重要性愈发凸显。随着 5G、人工智能等新兴技术的加速渗透,PCB行业面临着前所未有的挑战与机遇。产品迭代…...

【Java学习笔记】Arrays类

Arrays 类 1. 导入包:import java.util.Arrays 2. 常用方法一览表 方法描述Arrays.toString()返回数组的字符串形式Arrays.sort()排序(自然排序和定制排序)Arrays.binarySearch()通过二分搜索法进行查找(前提:数组是…...

23-Oracle 23 ai 区块链表(Blockchain Table)

小伙伴有没有在金融强合规的领域中遇见,必须要保持数据不可变,管理员都无法修改和留痕的要求。比如医疗的电子病历中,影像检查检验结果不可篡改行的,药品追溯过程中数据只可插入无法删除的特性需求;登录日志、修改日志…...

Java-41 深入浅出 Spring - 声明式事务的支持 事务配置 XML模式 XML+注解模式

点一下关注吧!!!非常感谢!!持续更新!!! 🚀 AI篇持续更新中!(长期更新) 目前2025年06月05日更新到: AI炼丹日志-28 - Aud…...

Springboot社区养老保险系统小程序

一、前言 随着我国经济迅速发展,人们对手机的需求越来越大,各种手机软件也都在被广泛应用,但是对于手机进行数据信息管理,对于手机的各种软件也是备受用户的喜爱,社区养老保险系统小程序被用户普遍使用,为方…...

在Ubuntu24上采用Wine打开SourceInsight

1. 安装wine sudo apt install wine 2. 安装32位库支持,SourceInsight是32位程序 sudo dpkg --add-architecture i386 sudo apt update sudo apt install wine32:i386 3. 验证安装 wine --version 4. 安装必要的字体和库(解决显示问题) sudo apt install fonts-wqy…...

基于TurtleBot3在Gazebo地图实现机器人远程控制

1. TurtleBot3环境配置 # 下载TurtleBot3核心包 mkdir -p ~/catkin_ws/src cd ~/catkin_ws/src git clone -b noetic-devel https://github.com/ROBOTIS-GIT/turtlebot3.git git clone -b noetic https://github.com/ROBOTIS-GIT/turtlebot3_msgs.git git clone -b noetic-dev…...

现有的 Redis 分布式锁库(如 Redisson)提供了哪些便利?

现有的 Redis 分布式锁库(如 Redisson)相比于开发者自己基于 Redis 命令(如 SETNX, EXPIRE, DEL)手动实现分布式锁,提供了巨大的便利性和健壮性。主要体现在以下几个方面: 原子性保证 (Atomicity)&#xff…...

【LeetCode】算法详解#6 ---除自身以外数组的乘积

1.题目介绍 给定一个整数数组 nums,返回 数组 answer ,其中 answer[i] 等于 nums 中除 nums[i] 之外其余各元素的乘积 。 题目数据 保证 数组 nums之中任意元素的全部前缀元素和后缀的乘积都在 32 位 整数范围内。 请 不要使用除法,且在 O…...

Qt的学习(一)

1.什么是Qt Qt特指用来进行桌面应用开发(电脑上写的程序)涉及到的一套技术Qt无法开发网页前端,也不能开发移动应用。 客户端开发的重要任务:编写和用户交互的界面。一般来说和用户交互的界面,有两种典型风格&…...