自学嵌入式第29天-----epoll、sqlite3
1. 正确选择触发模式(ET 和 LT)
-
水平触发(LT):默认模式,只要文件描述符处于就绪状态,
epoll_wait会持续通知。适合大多数场景,编程简单。 -
边缘触发(ET):只在状态变化时通知一次,适合高性能场景,但需要确保一次性处理完所有数据,否则可能丢失事件。
-
注意:
-
在 ET 模式下,必须循环读取或写入数据,直到返回
EAGAIN或EWOULDBLOCK。 -
如果未处理完数据,
epoll_wait不会再通知,可能导致事件丢失。
-
2. 正确处理事件
-
事件类型:
-
EPOLLIN:数据可读。 -
EPOLLOUT:数据可写。 -
EPOLLERR:发生错误。 -
EPOLLHUP:对端关闭连接。
-
-
注意:
-
必须处理
EPOLLERR和EPOLLHUP事件,否则可能导致程序异常。 -
在
EPOLLIN事件中,确保读取所有数据(特别是在 ET 模式下)。 -
在
EPOLLOUT事件中,避免频繁触发(可以通过动态添加/删除EPOLLOUT事件来优化)。
-
3. 文件描述符管理
-
添加/修改/删除文件描述符:
-
使用
epoll_ctl的EPOLL_CTL_ADD、EPOLL_CTL_MOD和EPOLL_CTL_DEL操作。 -
确保文件描述符有效,避免重复添加或遗漏删除。
-
-
注意:
-
文件描述符关闭后,必须从
epoll实例中删除,否则可能导致未定义行为。 -
在多线程环境中,文件描述符的管理需要加锁保护。
sqlite3:
sqlite3 xxx.db
1. sqlite的命令
.help 查询手册
.tables 查看数据库中的表
.headers on/off 打开/关闭表头
.mode column 设置左对齐
.quit 退出数据库2. sqlite支持的SQL(结构化序列语言)语言
数据类型:
INTEGER : 整形
REAL:浮点型
TEXT:文本字符串类型
NULL :空1. 创建一张表
create table 表名(列名1 数据类型, 列名2 数据类型, ....);2. 插入表格
insert into 表名 values(值1, 值2, 值3, ...);3. 查询数据库中的表
查询表中的所有数据:
select * from 表名;
查找指定列:
select 列名1,列名2 from 表名;条件查找:
select * from 表名 where 列名 关系运算符 值;
关系运算符:
=
>
<
!=
>=
<=
or (||)
and (&&)
模糊查找:
select * from 表名 where 列名 like "%梅";
% : 可以匹配多个字符
_ : 只能匹配一个字符
有序查找:
升序查找:
select * from 表名 order by 列名 ASC;
降序查找:
select * from 表名 order by 列名 DESC;4. 删除数据
delete from 表名 where 条件;
5. 修改数据
update 表名 set 列名=新值,列名=新值 where 条件;
6. 删除表
drop table 表名;
3. sqlite提供的C API接口
-
相关文章:
自学嵌入式第29天-----epoll、sqlite3
1. 正确选择触发模式(ET 和 LT) 水平触发(LT):默认模式,只要文件描述符处于就绪状态,epoll_wait 会持续通知。适合大多数场景,编程简单。 边缘触发(ET)&…...
工作学习笔记:HarmonyOS 核心术语速查表(v14 实战版)
作为在 HarmonyOS 开发一线摸爬滚打的工程师,笔者在 v14 版本迭代中整理了这份带血的实战术语表。 一、架构基础术语速查 A 系列术语 术语官方定义笔者解读(v14 实战版)开发陷阱 & 解决方案abc 文件ArkCompiler 生成的字节码文件打包时…...
解决AWS EC2实例无法使用IAM角色登录AWS CLI
问题背景 有时,我们希望一台AWS EC2实例,即云服务器,能够使用AWS CLI访问AWS管理控制台资源。 例如,这里,我们想让它能够列出所有IAM用户组。 aws iam list-groups于是,我们使用下面的命令,在…...
Java核心语法:从变量到控制流
一、变量与数据类型(对比Python/C特性) 1. 变量声明三要素 // Java(强类型语言,需显式声明类型) int age 25; String name "CSDN"; // Python(动态类型) age 25 name …...
manus是什么?能干啥?
Manus哪儿来的? Manus是一款由中国团队Monica.im于2025年3月5日发布的通用型AI代理(AI Agent)产品,旨在通过自主思考、系统规划和灵活工具调用,帮助用户完成各种复杂任务,从而解放用户的时间与创…...
大型语言模型训练的三个阶段:Pre-Train、Instruction Fine-tuning、RLHF (PPO / DPO / GRPO)
前言 如果你对这篇文章可感兴趣,可以点击「【访客必读 - 指引页】一文囊括主页内所有高质量博客」,查看完整博客分类与对应链接。 当前的大型语言模型训练大致可以分为如下三个阶段: Pre-train:根据大量可获得的文本资料&#…...
Elasticsearch 2025/3/7
高性能分布式搜索引擎。 数据库模糊搜索比较慢,但用搜索引擎快多了。 下面是一些搜索引擎排名 Lucene是一个Java语言的搜索引擎类库(一个工具包),apache公司的顶级项目。 优势:易扩展、高性能(基于倒排索引…...
发行基础:热销商品榜单
转载自官方文件 ------------------ 热销商品榜单 Steam 在整个商店范围内有各种热销商品榜单,最醒目的莫过于 Steam 主页上的榜单了。 您也可以在浏览单个标签、主题、类型时找到针对某个游戏类别的热销商品榜单。 主页热销商品榜单 该榜单出现在 Steam 主页上…...
实战案例分享:Android WLAN Hal层移植(MTK+QCA6696)
本文将详细介绍基于MTK平台,适配高通(Qualcomm)QCA6696芯片的Android WLAN HAL层的移植过程,包括HIDL接口定义、Wi-Fi驱动移植以及wpa_supplicant适配过程,涵盖STA与AP模式的常见问题与解决方法。 1. HIDL接口简介 HID…...
物联网系统搭建
实验项目名称 构建物联网系统 实验目的 掌握物联网系统的一般构建方法。 实验要求: 1.构建物联网系统,实现前后端的交互。 实验内容: CS模式MQTT(不带数据分析处理功能) 实现智能设备与应用客户端的交…...
微前端框架 Qiankun 的应用及问题分析
一、Qiankun 的核心应用场景与优势 多技术栈共存与灵活集成 Qiankun 支持主应用与子应用使用不同技术栈(如 Vue、React、Angular 等),通过 HTML Entry 方式接入子应用,无需深度改造子应用即可实现集成,降低了技术迁移成…...
设计模式-结构型模式-适配器模式
概述 适配器模式 : Adapter Pattern 是一种结构型设计模式. 作用 : 使得原本由于接口不兼容而不能一起工作的那些类可以一起工作。 实现思路 : 适配器模式通过将一个类的接口转换成客户希望的另外一个接口来实现这一点。 这里的“接口”指的是类所提供的…...
6. 机器人实现远程遥控(具身智能机器人套件)
1. 启动控制脚本 远程作到 Raspberry Pi 中,并运行以下脚本: conda activate lerobotpython lerobot/scripts/control_robot.py \--robot.typelekiwi \--control.typeremote_robot登录笔记本电脑上,同时运行以下脚本: conda ac…...
多模态知识图谱融合
1.Knowledge Graphs Meet Multi-Modal Learning: A Comprehensive Survey 1.1多模态实体对齐 1.2多模态实体链接 研究进展&#...
windows 平台如何点击网页上的url ,会打开远程桌面连接服务器
你可以使用自定义协议方案(Protocol Scheme)实现网页上点击URL后自动启动远程桌面连接(mstsc),参考你提供的C代码思路,如下实现: 第一步:注册自定义协议 使用类似openmstsc://协议…...
基于Spark的热门动漫推荐数据分析与可视化系统的设计与实现(采用Python语言Django框架,Hadoop,spider爬虫等技术实现)
基于Hadoop的热门动漫推荐数据分析与可视化系统 基于Django的热门动漫推荐数据分析与可视化系统 1. 开发工具和实现技术 Pycharm, Python3.7,Django框架,Hadoop,Spark,Hive,spider爬虫(爬取动漫之家的动…...
8. 机器人模型训练与评估(具身智能机器人套件)
1. 训练 使用python lerobot/scripts/train.py可以进行机器人控制模型训练,一般需要几个小时,可以在outputs/train/act_lekiwi_test/checkpoints查看锚点数据,下面为一组示例参数: python lerobot/scripts/train.py \--dataset.…...
计算机网络-服务器模型
一.服务器模型 1.支持多客户端访问 //单循环服务器 socket bind listen while(1) { accept while(1) { recv/send } } close 注:该模式remvform为阻塞态,服务器将等待接收数据 2..支持多客户端同时访问 (并发能力) socket…...
DeepSeek大模型 —— 全维度技术解析
DeepSeek大模型 —— 全维度技术解析 前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,可以分享一下给大家。点击跳转到网站。 https://www.captainbed.cn/ccc 文章目录 DeepSeek大模型 —— 全维度技术解析一、模型架构全景解析1…...
OSPF网络类型:NBMA与P2MP
一、NBMA网络 NBMA网络的特点 连接方式: 支持多台设备连接到同一个网络段,但网络本身不支持广播或组播。典型例子:帧中继、ATM。 DR/BDR选举: 由于网络不支持广播,OSPF需要手动配置邻居。 仍然会选举DR(…...
云启出海,智联未来|阿里云网络「企业出海」系列客户沙龙上海站圆满落地
借阿里云中企出海大会的东风,以**「云启出海,智联未来|打造安全可靠的出海云网络引擎」为主题的阿里云企业出海客户沙龙云网络&安全专场于5.28日下午在上海顺利举办,现场吸引了来自携程、小红书、米哈游、哔哩哔哩、波克城市、…...
React19源码系列之 事件插件系统
事件类别 事件类型 定义 文档 Event Event 接口表示在 EventTarget 上出现的事件。 Event - Web API | MDN UIEvent UIEvent 接口表示简单的用户界面事件。 UIEvent - Web API | MDN KeyboardEvent KeyboardEvent 对象描述了用户与键盘的交互。 KeyboardEvent - Web…...
uniapp微信小程序视频实时流+pc端预览方案
方案类型技术实现是否免费优点缺点适用场景延迟范围开发复杂度WebSocket图片帧定时拍照Base64传输✅ 完全免费无需服务器 纯前端实现高延迟高流量 帧率极低个人demo测试 超低频监控500ms-2s⭐⭐RTMP推流TRTC/即构SDK推流❌ 付费方案 (部分有免费额度&#x…...
Caliper 配置文件解析:config.yaml
Caliper 是一个区块链性能基准测试工具,用于评估不同区块链平台的性能。下面我将详细解释你提供的 fisco-bcos.json 文件结构,并说明它与 config.yaml 文件的关系。 fisco-bcos.json 文件解析 这个文件是针对 FISCO-BCOS 区块链网络的 Caliper 配置文件,主要包含以下几个部…...
回溯算法学习
一、电话号码的字母组合 import java.util.ArrayList; import java.util.List;import javax.management.loading.PrivateClassLoader;public class letterCombinations {private static final String[] KEYPAD {"", //0"", //1"abc", //2"…...
20个超级好用的 CSS 动画库
分享 20 个最佳 CSS 动画库。 它们中的大多数将生成纯 CSS 代码,而不需要任何外部库。 1.Animate.css 一个开箱即用型的跨浏览器动画库,可供你在项目中使用。 2.Magic Animations CSS3 一组简单的动画,可以包含在你的网页或应用项目中。 3.An…...
JS手写代码篇----使用Promise封装AJAX请求
15、使用Promise封装AJAX请求 promise就有reject和resolve了,就不必写成功和失败的回调函数了 const BASEURL ./手写ajax/test.jsonfunction promiseAjax() {return new Promise((resolve, reject) > {const xhr new XMLHttpRequest();xhr.open("get&quo…...
Java并发编程实战 Day 11:并发设计模式
【Java并发编程实战 Day 11】并发设计模式 开篇 这是"Java并发编程实战"系列的第11天,今天我们聚焦于并发设计模式。并发设计模式是解决多线程环境下常见问题的经典解决方案,它们不仅提供了优雅的设计思路,还能显著提升系统的性能…...
深度解析:etcd 在 Milvus 向量数据库中的关键作用
目录 🚀 深度解析:etcd 在 Milvus 向量数据库中的关键作用 💡 什么是 etcd? 🧠 Milvus 架构简介 📦 etcd 在 Milvus 中的核心作用 🔧 实际工作流程示意 ⚠️ 如果 etcd 出现问题会怎样&am…...
【动态规划】B4336 [中山市赛 2023] 永别|普及+
B4336 [中山市赛 2023] 永别 题目描述 你做了一个梦,梦里有一个字符串,这个字符串无论正着读还是倒着读都是一样的,例如: a b c b a \tt abcba abcba 就符合这个条件。 但是你醒来时不记得梦中的字符串是什么,只记得…...
