嵌入式学习day37 数据结构

1.sqlite3_open
    int sqlite3_open(
        const char *filename,   /* Database filename (UTF-8) */
        sqlite3 **ppDb          /* OUT: SQLite db handle */
    );
    功能:
        打开数据库文件(创建一个数据库连接)
    参数:
        filename:数据库文件路径 
        ppDb:操作数据库指针存放空间的首地址
    返回值:
        成功返回SQLITE_OK
        失败返回错误码

2.sqlite3_close 
    int sqlite3_close(sqlite3*);
    功能:
        关闭数据库连接

3.sqlite3_exec 
    int sqlite3_exec(
        sqlite3*,                                  /* An open database */
        const char *sql,                           /* SQL to be evaluated */
        int (*callback)(void*,int,char**,char**),  /* Callback function */
        void *,                                    /* 1st argument to callback */
        char **errmsg                              /* Error msg written here */
    );
    功能:
        执行一条SQL语句
    参数:
        sqlite3*: 数据库句柄
        sql: 要执行的SQL语句字符串首地址
        callback: 只有在select时才会使用,其余调用时传递NULL
        void*: 给回调函数的传参
        errmsg:出错信息存放空间首地址(使用完毕后使用sqlite3_free释放空间)
    返回值:
        成功返回SQLITE_OK
        失败返回错误码 

每找到一次数据就会调用一次callback

callback的参数:1.void*是exec函数中第四个参数,将这个参数传到callback中,    2.int是找到有几列的列数col,  3.pcontent是找到的那几列数据字符串首地址的指针数组  4.ptitle是找到的那几列数据的标题的字符串首地址的指针数组  

练习:
    实现将dict.txt文件中的所有单词和含义插入到数据库中

5.调试段错误:
    1.根据给定链接设置系统允许生成core文件
    2.编译代码时加入-g选项
        gcc filename.c -g -lsqlite3 
    3.执行代码让代码产生段错误(会生成一个包含错误信息的core文件)
    4.使用gdb调试core文件
        gdb a.out core 
    5.可以直接看到产生段错误的代码的位置
 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/742809.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

盲盒网站遭遇DDoS攻击,高防ip是如何起到安全防护的?

随着盲盒市场的快速发展和在线盲盒平台的普及,网站安全问题备受关注。其中,DDoS(分布式拒绝服务)攻击是一种常见的网络安全威胁,会给盲盒网站带来严重的影响,如网络中断、系统崩溃等问题。为了应对这种风险…

python使用rabbitmq发送消息和接收消息数据

发送消息 import pika# 设置RabbitMQ连接参数(更改账号密码) credentials pika.PlainCredentials(username, password) # 更改为自己的服务器地址 parameters pika.ConnectionParameters(192.168.0.157, 5672, /, credentials)# 建立到RabbitMQ的连接 connection pika.Bloc…

华为配置OSPF的Stub区域示例

配置OSPF的Stub区域示例 组网图形 图1 配置OSPF Stub区域组网图 Stub区域简介配置注意事项组网需求配置思路操作步骤配置文件 Stub区域简介 Stub区域的ABR不传播它们接收到的自治系统外部路由,在Stub区域中路由器的路由表规模以及路由信息传递的数量都会大大减少…

自然语言处理(NLP)技术的概念及优势

自然语言处理(NLP)是人工智能领域的一个重要分支,其目标是使计算机能够理解、处理和生成人类自然语言的形式和含义。 NLP技术的优势包括: 实现人机交互:NLP技术可以使计算机与人类之间实现自然的语言交互&#xff0c…

有来团队后台项目-解析7

sass 安装 因为在使用vite 创建项目的时候,已经安装了sass,所以不需要安装。 如果要安装,那么就执行 npm i -D sass 创建文件 src 目录下创建文件 目录结构如图所示: reset.scss *, ::before, ::after {box-sizing: border-…

使用CrossOver 在Mac 运行Windows 软件|D3DMetal是什么技术,

CrossOver Mac 使用特点 • 免费试用 14 天,可使用 CrossOver Mac 全部功能,• 试用过期会保留之前安装的 Windows 软件• 使 Mac 运行 Windows 程序 使用CrossOver在Mac上运行Windows软件是一个方便且无需安装完整Windows操作系统的解决方案。CrossOve…

macOS安装maven

官网下载maven https://maven.apache.org/download.cgi如下图所示: 1.解压并复制到指定的目录中2.配置环境变量 vim ~/.bash_profile进行文件的修改 export M2_HOME/Users/fanfan/company/apache-maven-3.9.6 export PATH$PATH:$M2_HOME/bin3.终端中输入source ~…

如何从笔记本电脑恢复已删除的照片

人们相信照片是回忆一生中最难忘事件的最佳媒介。人们在计算机上收集超过 5 GB 的照片是很常见的。然而,在笔记本电脑上保存照片并不安全,因为您可能会因以下原因有意或无意地删除笔记本电脑上的照片: 您的笔记本电脑存储空间几乎已满。您必…

【Vite+Ts】自动按需引入Element-Plus

安装插件 cnpm i -D unplugin-vue-components unplugin-auto-import unplugin-element-plus修改vite.config.ts // vite.config.ts import AutoImport from "unplugin-auto-import/vite"; import Components from "unplugin-vue-components/vite"; impor…

WWW2024 | PromptMM:Prompt-Tuning增强的知识蒸馏助力多模态推荐系统

论文:https://arxiv.org/html/2402.17188v1 代码:https://github.com/HKUDS/PromptMM 研究动机 多模态推荐系统极大的便利了人们的生活,比如亚马逊和Netflix都是基于多模态内容进行推荐的。对于研究,人们也遵循工业界的趋势,进行modality-aware的用户…

Http 请求状态码

HTTP状态码是服务器用于告知客户端网页或资源的请求状态的三位数字代码。这些状态码分为五个类别,每个类别有不同的用途: 1xx - 信息性状态码 100 Continue:客户端应继续其请求101 Switching Protocols:请求者已要求服务器切换协…

[笔记] Docker 安装脚本分析

最近在研究 wsl 上安装 Docker ,查了一些资料找到官网提供的安装脚本,感觉比较有意思所以拿来分析一波: https://get.docker.com 使用 curl 下载脚本 在介绍中有一个命令行用于下载该脚本: curl -fsSL https://get.docker.com…

智能化工厂大屏监控

通过采集和整合工厂各个环节的数据,包括设备状态、生产进度、质量指标、能源消耗等,并将这些数据以图表、动画、报表等形式展示在大屏上。 智能化工厂大屏监控可以提供以下优势: 实时监控:通过大屏幕展示工厂各项数据&#xff0c…

分布式链路追踪(一)SkyWalking(1)介绍与安装

一、介绍 1、简介: 2、组成 以6.5.0为例,该版本下Skywalking主要分为oap、webapp和agent三部分,oap和webapp分别用于汇总数据和展示,这两块共同组成了Skywalking的平台;agent是探针,部署在需要收集数据的…

如何“使用Docker快速安装Jenkins,在CentOS7”?

1、运行 docker run -d --namejenkins -p 8080:8080 jenkins/jenkins 2、查看日志 ,使用 "docker logs -f jenkins",可以持续刷新日志 docker logs jenkins 3、通过命令查看密码 docker exec -it jenkins cat /var/jenkins_home/secrets/initialAdminP…

Spring框架----AOP全集

一:AOP概念的引入 首先我们来看一下登录的原理 如上图所示这是一个基本的登录原理图,但是如果我们想要在这个登录之上添加一些新的功能,比如权限校验 那么我们能想到的就有两种方法: ①:通过对源代码的修改实现 ②&a…

vim相关命令

vim 三种工作模式:命令模式、文本模式、末行模式 命令模式:通过vi hello.c 命令进入i a o 、I A O、 s S 可以切换到文本模式 ,写完后保存退出 o光标 回到下一行O光标回到上一行s删除当前字母S删除一整行A回到该行末尾处a光标回到下一个输入…

go语言操作etcd

首先在后台启动etcd 写一段go代码 package mainimport ("context""fmt"clientv3 "go.etcd.io/etcd/client/v3""time" )func main() {// 创建客户端,连接etcdcli, err : clientv3.New(clientv3.Config{Endpoints: []strin…

YOLOv5目标检测学习(5):源码解析之:推理部分dectet.py

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 前言一、导入相关包与路径、模块配置1.1 导入相关的python包1.2 获取当前文件的相对路径1.3 加载自定义模块1.4 总结 二、执行主体的main函数所以执行推理代码&…

手写超级好用的rabbitmq-spring-boot-start启动器

手写超级好用的rabbitmq-spring-boot-start启动器 文章目录 1.前言2.工程目录结构3.主要实现原理3.1spring.factories配置3.2EnableZlfRabbitMq配置3.3RabbitAutoConfiguration配置3.4ZlfRabbitMqRegistrar配置 4.总结 1.前言 由于springBoot官方提供的默认的rabbitMq自动装配不…