- 博客(23)
- 资源 (15)
- 收藏
- 关注
原创 解决va_list 参数...嵌套问题
void Test1(int bNum, va_list va){ int tmp; TRACE("Run here: Test1.\n"); for (int i=0; i<bNum; i++) { tmp = va_arg(va, int); TRACE("i=%d, tmp=%d.\n", i, tmp); }}void Test0(int idx, B...
2019-07-31 11:22:39 644
原创 SQLite中 limit 与 offset 的用法
SQL查询语句中的 limit 与 offset 的用法:limit y 分句表示: 读取 y 条数据limit x, y 分句表示: 跳过 x 条数据,读取 y 条数据limit y offset x 分句表示: 跳过 x 条数据,读取 y 条数据比如分页获取数据:第1页: 从第0个开始,获取20条数据selete * from testtable limit 0, 2...
2019-07-30 15:12:45 5543
原创 完美解决各进程间系统库修改之后的弹性扩充,引入技术有多进程共享内存、多进程信号量、dlyopen动态库
完美解决各进程间系统库修改之后的弹性扩充,引入技术有多进程共享内存、多进程信号量、dlyopen动态库,具体流程如下:修改DbCfg.cpp,对配置结构TDbCtrl g_DbCtrl进行函数封装为TDbCtrl *GetTDbCtrl(){//初始化g_DbCtrl结构体return &g_DbCtrl;}将DbCfg.cpp编译成动态库libDbCfg.so...
2019-07-29 15:08:09 177
原创 Linux IPC 信号量
1. 概念原理ipc信号原理2. Semphore.h#ifndef SEMPHORE_H#define SEMPHORE_H#include<stdio.h>#include<stdlib.h>#include<string.h>#include<unistd.h>#include<sys/types.h>...
2019-07-29 11:01:40 311
原创 dlopen动态库访问
因项目需要多进程共享资源访问....1. 动态库源码、编译(DyncAppLib.cpp)#include <stdlib.h>#include <stdio.h>#include <string.h>typedef struct { const char *pszItemName; int id;}TItem;typedef str...
2019-07-26 17:41:11 446
原创 dlopen调用动态库运行出现undefined symbol
1. 库源码#include <stdlib.h>#include <stdio.h>#include <string.h>int add(int a,int b){ return (a + b);}int sub(int a, int b){ return (a - b);}int mul(int a, int b...
2019-07-26 14:48:58 5388
原创 Linux查看动态库.so导出函数列表
有两种方式:1.使用objdump命令。例如:objdump -tT xxx.so2.使用nm命令(个人觉得使用nm方式查看更方便。)例如 nm -D xxx.so(-D或-dynamic选项表示:显示动态符号。该选项仅对于动态库有意义)得到的结果中以T开头的就是导出函数...
2019-07-26 14:32:56 4442
原创 socket 服务端类模块封装
1. Server.h#ifndef SOCKET_SERVER_H#define SOCKET_SERVER_H#include <stdio.h>#include <stdlib.h>#include <stdio.h>#include <sys/types.h>#include <sys/socket.h>#i...
2019-07-23 19:49:34 308
原创 Linux C++调用线程报错 error: invalid use of non-static member function
问题描述:基于C++创建一个录音的类,抓取mic的pcm数据,并返回。class MicRecordImpl{ void* audioThread(void *param); void startRecord(void);};其中,在实现类有一个线程函数:void* MicRecordImpl::audioThread(void *param){ //d...
2019-07-23 16:53:11 4442 1
原创 C++ 中的 String 类
C++ 标准库提供了string类类型,支持C语言的所有字符操作,另外还增加了其他更多的功能。现在您可能还无法透彻地理解这个实例,因为到目前为止我们还没有讨论类和对象。所以现在您可以只是粗略地看下这个实例,等理解了面向对象的概念之后再回头来理解这个实例。实例:#include <iostream>#include <string> usi...
2019-07-21 08:06:31 116
原创 Linux IPC共享内存(多进程通信)
1. ShareMem.h#ifndef SHARE_MEM_H#define SHARE_MEM_H#include <sys/shm.h>#include <stdio.h>#include <stdlib.h>#include <string.h>#include <unistd.h>class CShar...
2019-07-19 14:17:36 386
原创 Linux IPC消息队列多进程通信编程封装
1. MsgQue.h#ifndef MSG_QUE_H#define MSG_QUE_H#include <stdio.h>#include <stdlib.h>#include <stdarg.h>#include <string.h>#include <sys/ipc.h>#include <sys...
2019-07-18 15:32:43 414
转载 sqlite内存数据库、文件数据库
详见:https://blog.csdn.net/lijinqi1987/article/details/51672711 由于sqlite对多进程操作支持效果不太理想,在项目中,为了避免频繁读写 文件数据库带来的性能损耗,我们可以采用操作sqlite内存数据库,并将内存数据库定时同步到文件数据库中的方法。实现思路如下:1、创建文件数据库;2、创建内存数据库(文件数据...
2019-07-16 09:06:13 1829
原创 SQLite3调测优化
非常好的一篇博客,详见:https://blog.csdn.net/lijinqi1987/article/details/51852721首先,建立数据库rc = sqlite3_exec(db, "create table if not exists testinfo (id integer primary key, age integer, height text, weight ...
2019-07-16 09:02:29 862
原创 SQLite支持3种线程模式
1. 单线程:这种模式下,没有进行互斥,多线程使用不安全。禁用所有的mutex锁,并发使用时会出错。当SQLite编译时加了SQLITE_THREADSAFE=0参数,或者在初始化SQLite前调用sqlite3_config(SQLITE_CONFIG_SINGLETHREAD)时启用。 2. 多线程:这种模式下,只要一个数据库连接不被多个线程同时使用就是安全的。源码中是启用bCore...
2019-07-13 11:26:48 2257
原创 Sqlite sqlite3_config 报错 21
要使用Sqlite进行开发,需要用sqlite3_config()函数设置多线程模式,结果发现调用此函数一直ERROR,错误码是21.查看了相关的错误码文档,不明所以。。。之后果断google,找到了问题的所在和解决方案(以下的意思是必须在打开数据库前进行sqlite3_config配置,否则就会出现报21这个错误):I struggled long and hard with this a...
2019-07-12 16:46:38 1383
原创 AES(128、ECB、PKCS5Padding)
1. 网页版AES路径 AES网页版加密、解密工具2. 概念【PKCS5Padding与PKCS7Padding】 详见:https://blog.csdn.net/xz_studying/article/details/942290233. 源码3.1 main.c#include <stdio.h>#include <string.h&...
2019-07-12 09:19:33 3937
原创 va_list va_start va_arg va_end
vsnprintf函数头文件:#include <stdarg.h>函数原型:int vsnprintf(char *str, size_tsize, const char *format, va_listap);函数说明:将可变参数格式化输出到一个字符数组参数:str输出到的数组,size指定大小,防止越界,format格式化参数,ap可变参数列表函数用法#incl...
2019-07-11 10:31:47 140
原创 sqlite3操作总结
里面对Makefile的说明很详细,通过make的参数指定是gcc编译还是arm-linux-gcc编译https://blog.csdn.net/xinxin_2011/article/details/85341091
2019-07-10 16:02:43 126
原创 MQTT并发测试(Linux嵌入式环境)
发布者代码:#include "stdio.h"#include "stdlib.h"#include "string.h"#include "MQTTClient.h"#define ADDRESS "tcp://localhost:1883"#define CLIENTID "ExampleClientPub"#define TOPIC "MQTT...
2019-07-08 18:03:41 1666
转载 MQTT简介
转载:https://blog.csdn.net/chenliang0224/article/details/89188959上一篇文章我们已经讲了 MQTT 服务器的搭建,参看:MQTT再学习 -- 搭建MQTT服务器及测试接下来我们看一下 MQTT 客户端。一、客户端下载首先,客户端也有多种,我们需要面临选择了。参看:基于mqtt的消息推送(三)客户端实现现有客户端sdk...
2019-07-08 10:04:06 831
http_client.txt
2019-11-06
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人