自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

两只机械佬 的博客

迷茫的机械佬转战码畜,决心成为一名优秀的"CV"工程师,haha....

  • 博客(69)
  • 收藏
  • 关注

原创 mysql配置文件优化记录

【代码】mysql配置文件优化记录。

2025-03-18 11:44:05 335

原创 CMake 保姆级教程(下)

在项目根目录的lib目录中生成了动态库libsort.so。在项目根目录的lib目录中生成了静态库libcalc.a。在项目根目录的bin目录中生成了可执行程序test1。在项目根目录的bin目录中生成了可执行程序test2。

2024-09-23 13:46:47 316

原创 CMake 保姆级教程(上)

CMake概述CMake 是一个项目构建工具,并且是跨平台的。关于项目构建我们所熟知的还有Makefile(通过 make 命令进行项目的构建),大多是IDE软件都集成了make,比如:VS 的 nmake、linux 下的 GNU make、Qt 的 qmake等,如果自己动手写 makefile,会发现,makefile 通常依赖于当前的编译平台,而且编写 makefile 的工作量比较大,解决依赖关系时也容易出错。

2024-09-23 13:40:49 376

原创 truncate与ftruncate函数

2024-09-11 10:14:27 287

原创 非阻塞IO之O_NONBLOCK标志

2024-09-11 10:13:54 453

原创 libcurl简单用法

当操作完成时,这个调用必须有一个对应的curl_easy_cleanup调用。当应用程序不再使用libcurl的时候,应该调用curl_global_cleanup[声明:void curl_global_cleanup(void)]释放相关的资源。//在curl_easy_init和所有curl_easy_setopt调用完成后调用此函数,并将按照选项中的描述执行传输.curl_slist_free_all() 释放使用 curl_slist_append() 制作的整个 curl_slist。

2024-09-11 10:04:50 1229

原创 Win10中搭建QT+Visual Stdio开发环境,并打包发布

(1)前往QT官方下载地址下载http://download.qt.io/archive/qt/5.14/5.14.2/qt-opensource-windows-x86-5.14.2.exe,也可以去清华镜像下载:https://mirrors.tuna.tsinghua.edu.cn/qt/archive/qt/5.13/5.13.2/qt-opensource-windows-x86-5.13.2.exe。不安装在选项->kits会提示警告,安装了,警告会消失。按照默认的,点击下一步,直到安装完成。

2024-09-11 10:00:12 940

原创 preadv与pwritev

pwritev()系统调用结合了writev()和的功能pwrite ()。它执行与writev()相同的任务,但是添加了第四个参数偏移量,指定输出所在的文件偏移量要进行操作。原始preadv()和pwritev()系统调用具有这样的调用签名与相应的GNU C库包装器稍有不同功能简介中所示。所给出的错误用于read() 、 write()。此外,preadv()和pwritev()也可能因为与lseek()相同的原因而失败。writev()和pwritev()返回写入的字节数。

2024-09-10 15:02:53 253

原创 linux的获取进程与进程内存结构

2024-09-10 15:02:19 118

原创 时间操作函数(二)

1.currtime2.strptime4.adjtime5获取进程时间(1)命令方式。

2024-09-10 14:36:59 184

原创 时间操作函数(一)

Epoch:1970年1月1日0时0分0秒。1.时间获取gettimeofday。2.时间获取time。

2024-09-10 14:33:53 166

原创 stdio库缓冲

2024-09-09 22:42:01 121

原创 翻转数值(算法题)

(32-1)-1,在此范围输出翻转数,否则提示溢出.实现:法一取余放入队列,取出队首乘倍数实现翻转。输入-1234 输出-4321。输入1234 输出4321。(32-1)-1,翻转数-2。要求实现判断:输入数为-2。

2024-09-09 22:40:39 203

原创 用socket(基于tcp协议)进行本地间多进程通信

客户端1与客户端3需要通信,则客户端1需要先订阅客户端3有关信息,客户端3发布数据(包含客户端1订阅的有关信息)到ipc server,ipc server分发到所有客户端,客户端1收到数据,判断数据,发现是已订阅客户端3的有关信息,做出相应处理.客户端2没有订阅,则扔掉数据.本地进程:ipc client1为客户端1,客户端1连接服务端,并接受服务端分发的数据,判断该数据是否是自己需要的数据(订阅的数据),如果是就做出处理,否则扔掉.

2024-09-09 22:39:34 436

原创 重复字符的最长子串

遍历某个字符串字符发现该字符下标数组元素值为0,则代表该字符未出现过,并用left表示当前寻找最长子串的所在字符串起始位置(并不代表最长子串所在的字符串起始位置)。当遍历某个字符串字符发现该字符下标数组元素值为0时或小于left值时,无重复字符的长度为max(已经保存的最长长度值,当前遍历字符的偏移值-left+1).解释: 因为无重复字符的最长子串是 “abc”,所以其长度为 3。解释: 因为无重复字符的最长子串是 “wke”,所以其长度为 3。输入: “abcabcbb”输入: “pwwkew”

2024-09-09 22:38:28 248

原创 CA、加签、验签、RSA算法

银行A发布了一个银行客户端的补丁供所有用户更新,那为了确保人家下载的是正确完整的客户端,银行A会为这个程序打上一个数字签名(就是用银行A的私钥对这个程序加密然后发布),你需要在你的电脑里装上银行A的数字证书(就是银行对外发布的公钥),然后下载好这个程序,数字证书会去解密这个程序的数字签名,解密成功,补丁得以使用。由于a的值有φ(p1)种可能,b的值有φ(p2)种可能,则数对 (a,b) 有φ(p1)φ(p2)种可能,而c的值有φ(p1p2)种可能,所以φ(p1p2)就等于φ(p1)φ(p2)。

2024-09-09 22:37:46 1755

原创 23种设计模式(C++版)

确保某一个类只有一个实例,而且自行实例化并向整个系统提供这个实例,这个类称为单例类,它提供全局访问的方法。抽象工厂模式(Abstract Factory) ★★★★★。模板方法模式(Template Method) ★★★☆☆。工厂方法模式(Factory Method) ★★★★★。原型模式(Prototype) ★★★☆☆。单例模式(Singleton) ★★★★☆。组合模式(Composite) ★★★★☆。迭代器模式(Iterator) ★★★★★。观察者模式(Observer) ★★★★★。

2024-09-09 22:34:12 696

原创 树的知识点

树的应用:哈夫曼树、红黑树、AVL树、B(B+)树、Treap树、Trie树(字典树)、伸展树、替罪羊树等。二叉树的遍历顺序:前序DLR、中序LDR、后序LRD(递归与迭代);树的操作:插入、删除、查询、遍历、旋转等。二叉树的定义、概念、特点。树、森林、二叉树的关系。树的基本概念、特点。

2024-09-09 22:32:21 131

原创 ubuntu作为中间设备,开发板设备ping通手机设备,若手机设备ping通开发板,则需配ubuntu作为网关网关

MASQUERADE就是针对这种场景而设计的,他的作用是,从服务器的网卡上,自动获取当前ip地址来做NAT。MASQUERADE,地址伪装,算是snat中的一种特例,可以实现自动化的snat。#eth1为对应板子的网卡 eth0为本地上网的网卡。手机端 ip192.168.43.1。实现手机端ping通板子端。

2024-09-09 22:31:41 292

原创 断线重连socket客户端

客户端需要开两个线程,一个线程负责不断连接服务器直到成功,若成功连接就进入定时发送heartbeat数据来检测服务端是否掉线,掉线则退出发送进入重连;另外一个线程负责接收服务端数据,接收时服务器掉线也马上重连。(用了一个变量来表示是否连接成功,这两个线程都会修改这个变量,就用了互斥锁).若服务端先上线就等待客户端连接,客户端则正常连接。当客户端先上线,服务端还没上线,或当服务端掉线时,则客户端不断重新连接服务端,直到服务端上线。服务端与客户端任意一端掉线,能提示掉线。仓库下目录retryConnect/

2024-09-09 22:30:01 380

原创 mosquitto库(MQTT)移植到ARM

移植mosquitto库前,先准备好ARM交叉工具链,下载mosquitto源码、uuid源码、openssl源码,mosquitto编库依赖uuid、openssl库。libuuid-1.0.3-arm、openssl-1.1.1g-arm中包含有静态库与动态库,但mosquitto1.6.9-arm中只有动态库。它工作在 TCP/IP协议族上,是为硬件性能低下的远程设备以及网络状况糟糕的情况下而设计的发布/订阅型消息协议,为此,它需要一个消息中间件。“只有一次”,确保消息到达一次。

2024-09-09 22:28:55 1877

原创 protobuf3移植到arm以及简单使用(C++版本)

下载protobuf-cpp-[VERSION].tar.gz以及相应版本protoc工具protoc-[VERSION]-linux-x86_64.zip(我的UBuntu是64位的)源码位置:https://github.com/jest549/LibTransAndUse/tree/master/Protobuf3.6.1/useDemo。网站:https://github.com/protocolbuffers/protobuf/releases。进入 protobuf-3.6.1目录,执行命令。

2024-09-09 22:25:16 1008

原创 守护进程监测并启动程序

通过进程的名称监控某个进程,如果该进程退出了,就马上启动该进程。通过system启动,如果该进程不退出或崩溃,将阻塞等待,将不会通过命令检查该进程是否存活。源代码:deamon.c。

2024-09-09 22:11:33 256

原创 linux进程间通信(IPC 工具)

这个命令就是创建两个进程执行ls和wc命令,将执行ls命令的进程标准输出连接到管道的写入端,执行wc命令的进程将标准输入连接到管道的读出端。一个管道是一个字节流,且只能按顺序读写,不能随机读写,管道是单向的(也有双向管道,替换方案是 UNIX domain 流socket对),可以确保在一个时刻写入不超过PIPE_BUF(4096)字节的操作都是原子的,管道的储存能力为65536字节。IPC通信可以分为两类:数据传输工具和共享内存,数据传输是一端用户程序将数据写入内核,另一端的用户程序从内核取出数据。

2024-09-09 22:09:33 317

原创 linux网络配置相关杂项(1)

若要其自动执行,可将命令echo “1” > /proc/sys/net/ipv4/ip_forward 写入脚本/etc/rc.d/rc.local 或者 在/etc/sysconfig/network脚本中添加 FORWARD_IPV4=“YES”1表示允许,将其修改为1。可使用命令 echo “1” > /proc/sys/net/ipv4/ip_forward 修改文件内容。cat /proc/sys/net/ipv4/ip_forward,该文件内容为0,表示禁止数据包转发。

2024-09-09 22:07:45 262

原创 记录交叉编译时一个错误:fatal error: gnu/stubs-soft.h: No such file or directory

用-mfloat-abi=softfp编译的app或者库,在用-mfloat-abi=soft编译的OS中,如果SoC中没有FPU,那么是不能跑的。用-mfloat-abi=soft编译的app或者库,在用-mfloat-abi=softfp编译的OS中是可以跑的;在编译带有浮点参数的函数时,有三种可能的编译选项:-mfloat-abi=soft/softfp/hard。所以编译选项由-mfloat-abi=softfp改为:-mfloat-abi=hard,编译通过。因此,在涉及到浮点函数调用时,

2024-09-07 23:23:14 646

原创 adb shell 出现error:insufficient permissions for device

原因:您需要一个提供libGL.so(无版本后缀)符号链接的包.在Ubuntu中,它位于libgl1-mesa-dev包中。ubuntu中使用QT编译提示错误:/usr/bin/ld: 找不到 -lGL。解决:sudo apt install libgl1-mesa-dev。

2024-09-06 23:36:49 998

原创 ubuntu中使用QT编译提示错误: /usr/bin/ld: 找不到 -lGL

原因:您需要一个提供libGL.so(无版本后缀)符号链接的包.在Ubuntu中,它位于libgl1-mesa-dev包中。ubuntu中使用QT编译提示错误:/usr/bin/ld: 找不到 -lGL。解决:sudo apt install libgl1-mesa-dev。

2024-09-06 23:34:37 187

原创 手机热点通过电脑给开发板供网

虚拟机为ubuntu16.04,windows中vmware虚拟网卡为192.168.223.1, ubuntu16.04里的网卡ens33的ip为192.168.223.128,与windows中vmware虚拟网卡同一网段,ubuntu内上网正常。开发板的ip为192,168.22.1,开发板内开启DHCP服务,通过USB映射在虚拟机的网卡为192.168.22.3,虚拟机与板子可以互相ping通。虚拟机开启路由转发:echo “1” > /proc/sys/net/ipv4/ip_forward。

2024-09-06 23:33:56 386

原创 移植libevent到ARM开发板并测试

配置编译工具链: ./configure --prefix=/home/jest/libevent --host=arm-linux-gnueabihf CC=/xxx/xxx/xxx/arm-linux-gnueabihf-gcc CXX=/xxx/xxx/xxx/arm-linux-gnueabihf-g++ ("/xxx/xxx/xxx/"为存放工具链的目录)解压tar -zxvf libevent-2.1.12-stable.tar.gz。服务端代码:server.c。

2024-09-06 23:33:15 553

原创 QT+VS调用高德地图的JS API实现地图打点小工具

【代码】QT+VS调用高德地图的JS API实现地图打点小工具。

2024-09-06 23:31:24 411

原创 安卓Auto.js脚本开发文档

【代码】安卓Auto.js脚本开发文档。

2024-09-06 23:28:18 5329

原创 linux线程特有数据详解

【代码】linux线程特有数据详解。

2024-09-06 23:21:49 228

原创 Linux多线程编程详解(1)

线程是应用程序并发执行多个任务的机制,一个进程可以包含多个线程,且共享同一个全局内存区域,包括(未)初始化数据段、堆内存。多核处理器机器是可以支持多个线程真正意义上的多个线程并发执行。多线程编程时需要注意线程安全问题,信号处理问题,并且每个线程都在争用且可以使用宿主进程的虚拟内存空间(32位机器为3GB)。进程间很多属性是进程中所有线程共享的。例如进程ID、打开的文件描述符、栈、CPU时间消耗、信号等。创建消耗系统资源少,耗时短。

2024-09-06 23:20:57 344

原创 Linux多线程详解(2)

线程栈大小是固定的,也就是ulimit -a 显示的值。

2024-09-06 23:19:10 235

原创 Auto.js开发与调试环境搭建

下载APP:可以下载Auto.js pro 8.0,收费45元终身免费,支持安卓10,官网:https://pro.autojs.org/ (白嫖党可以在网上找Auto.js 7.0普通版或pro,但普通版要打包插件才可以打包。3.在VSCode按CTRL+SHIFT三个键,输入autojs,star server后连接新设备,输入Auto.js APP里的IP就可以连接上,编写脚本,运行脚本就可以调试脚本了。第一种:APP(auto.js)+安卓模拟器(雷电模拟器)+VSCode。

2024-09-06 23:18:13 841

原创 移植speedtest到ARM开发板测速

【代码】移植speedtest到ARM开发板测速。

2024-09-06 23:10:30 579

原创 使用C语言实现字符串的一些操作

【代码】使用C语言实现字符串的一些操作。

2024-09-06 23:09:19 269

原创 使用ifstat查看arm linux实时网速

ifstat官网:http://gael.roualland.free.fr/ifstat/使用ifstat查看arm linux每张网卡的实时网速。下载ifstat, ifstat-1.1.tar.gz。make install出错了。

2024-09-06 22:44:49 208

原创 编写数据通信协议代码的小技巧

【代码】编写数据通信协议代码的小技巧。

2024-09-05 16:12:35 228

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除