自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(41)
  • 资源 (2)
  • 收藏
  • 关注

原创 关于GLibC

【代码】关于GLibC。

2023-11-03 17:00:50 200

原创 类的右值构造函数和右值赋值运算符函数写法

类的右值构造函数和右值赋值运算符函数写法

2023-05-08 21:31:55 261

原创 拥抱c++ chrono 抛弃 c time

C++ chrono时间戳的一些操作

2023-03-10 10:47:41 427

原创 shell脚本:实现监控进程内存

shell实现进程内存监控

2023-03-06 15:33:49 474

原创 CMakeList的proto文件处理为CPP

CMakelist中将proto文件编译为c++源文件

2023-02-21 11:52:21 404

原创 VSCode代码格式GoogleStyle

VSCode配置GoogleStyle

2022-11-04 11:35:29 3154

原创 C++11 shared_ptr unique_ptr weak_ptr

C++11 智能指针

2022-08-16 12:01:48 361

原创 ubuntu1804换清华源

ubuntu1804清华源

2022-08-10 18:16:40 1819

原创 Shell:遍历当前目录下的指定文件

find命令遍历当前目录下的文件

2022-08-09 13:41:09 2159

原创 Ubuntu1804安装rabbitmq服务

RabbitMQ安装

2022-07-20 17:43:47 495

原创 libcurl 的 curl_easy_setopt()

CURL *hCurl = curl_easy_init();curl_easy_setopt(hCurl, CURLOPT_SSL_VERIFYPEER, 1L);curl_easy_setopt(hCurl, CURLOPT_SSL_VERIFYHOST, 2L);1、HTTPS相关(1)CURL_VERIFY_PEER默认值为1,该参数表示是否验证HTTPS证书的合法性,就是用第三方证书机构颁发的CA数字证书来解密服务端返回的证书,来验证其合法性。可在编译时就将CA数字证书编译进去,.

2022-05-25 19:17:13 1050

原创 python和c/c++两者的变量区别

程序是由变量和函数组成的,变量是数据的载体,通过变量传入函数,完成对数据的处理后,返回新的变量。对于C/C++而言,程序员可以明确指定传递方式的,主要有:值传递、指针传递、引用传递。对于python而言,不允许程序员选择采用传值还是传引用,参数传递采用的是“传对象引用”的方式。这种方式相当于传值和传引用的一种综合。如果函数收到的是一个可变对象(dict、list、set、bytearry)的引用,就能修改对象的原始值,相当于‘传引用’来传递对象。如果函数收到的是一个不可变对象(int、doubl

2022-03-21 10:56:27 1597

原创 C/C++ 常见的内存泄露案例

在编程工作生涯中本人亲自写出的的或者见过的内存泄露案例记录。(1)使用三方C语言库错误情景分析:例如一些三方开源的C语言动态库,如:openssl等,API使用比较复杂,完成一个完整的逻辑需要调用多个API函数,其中会传入一些指针,由库提供的API函数帮用户完成对象的创建,同时也会提供相应的释放或销毁API函数,但往往再用完后就会忘记主动调用释放函数,来释放这些指针,造成内存的泄露。避坑指南:在使用三方不熟悉的库时,一定要自己先写一个死循环的Demo程序,运行起来之后,观看内存的变化。确

2022-03-21 09:58:53 1688 1

原创 ubuntu apt-get update 出错

ubuntu apt-get update 出错

2022-03-04 12:51:55 461

原创 linux select函数陷阱

代码样例一(正确用法):while (true) { FD_ZERO(&readfds); FD_SET(socket_fd, &readfds); time_wait.tv_sec = 0; time_wait.tv_usec = 500000; ret = select(socket_fd+1, &readfds, NULL, NULL, &time_wait); if ((ret <= 0) || (!F..

2021-10-26 11:56:09 440

原创 linux(Ubuntu)安装(更新)cmake

1、cmake官方下载编译好的包cmake官方已经给你做了各个操作系统的编译安装包,找到对应的操作系统下载。连接:https://cmake.org/files/v3.21/我这里需要的版本是:cmake-3.21.0-linux-x86_64.tar.gz如果需要windows或者mac的亦或是 linux64位的请找对应的版本就行。下载:aria2c -s 4 -c https://cmake.org/files/v3.21/cmake-3.21.0-linux-x86_64..

2021-07-19 16:01:32 605

原创 使用 openssl 计算 base64(防止内存泄露)

#include "openssl/bio.h"#include "openssl/evp.h"#include "openssl/buffer.h"int base64(const unsigned char *src, int src_len, unsigned char *dst, int *dst_len) { BIO *bio_hnd_mem = NULL; BIO *bio_hnd_meth = NULL; BUF_MEM *buf_mem_ptr = NUL.

2021-06-01 19:32:33 711

原创 c/c++ 字符串string转整数int和浮点数float

支持的字符串类型有:十六进制类型,例如:"0x123","0X123"整数类型,例如:"1000","-1000"浮点数类型,例如:"0x789","0X789","1.345","-1.345","1.23e-5", "1.23E-5","-1.23E+5"#include <stdio.h>#include <string.h>#include <stdlib.h>bool str_to_int(const char* str, con..

2021-05-17 15:19:11 868

原创 用docker打造一个ubuntu开发环境

1.背景我们在做ubuntu应用开发时,手中的开发电脑搭载的操作系统一般是windows或者macos。大多数人都会选择安装VMware或者VirtualBox。然后下载ubuntu对应发行版本的iso镜像安装一个虚拟机。而我们开发人员只需要借助ubuntu的编译器编译自己的代码而已,安装一个完整桌面版的ubuntu虚拟机显然太耗费个人电脑的资源了。因此,可以选择安装一个docker容器,小巧精简。下面介绍一下我在我个人MAC电脑上搭建ubuntu开发容器的过程。2.环境搭建2.1.

2021-03-26 14:22:43 6227 2

原创 yaml-cpp的实际使用注意事项

1、YAML语法yaml类似于json、xml。是一种标记语法。1.1、YAML语法基本规则(1)关于大小写:大小写敏感(2)关于层级关系:使用缩进表示层级关系,但缩进不允许使用tab,只允许空格。缩进的空格数不重要,只要相同层级的元素左对齐即可(3)支持注释:注释以'#'开头1.2、YAML 支持的数据类型:(1)对象:键值对的集合,又称为映射(mapping)/ 哈希(hashes) / 字典(dictionary)(2)数组:一组按次序排列的值,

2021-02-05 16:21:55 5456 1

原创 linux下使用tcpdump工具分析UDP报文

1、背景在调试UDP协议时,总是会遇到需要查看UDP报文的内容情况,或许是为了验证自己写的序列化组包是否正确,或者接受到的报文是否合法,亦或是为了查看自己发送或者接收的报文频率是否合格。无论出于什么目的,都要查看报文原始内容。而linux就提供了这样一个命令行工具tcpdump。2、tcpdump工具使用方式简介:tcpdump命令行工具的详细使用方法,可以仔细通读man手册。man tcpdump参数有很多,但如果掌握如下几个参数就可以满足大部分的调试场景了:-i:in.

2021-02-05 15:14:21 4560

原创 MacOS将远程Linux服务器挂载到本地目录

1、安装brew软件安装工具brew类似于ubuntu的apt-get,centos的yum。具体安装brew的方式可以百度搜索一下。2、安装fuse和sshfs2.1、安装fusesshfs依赖于fuse,因此首先安装fuse。当然你可以直接安装sshfs,那样会提示你依赖的fuse不存在,安装会出错。% brew install fuse安装过程中会从github上拉取代码,由于网络问题偶尔会出现拉取代码出错,可以多试几次。安装完成后重启一下你的MacOS。.

2021-01-12 14:22:34 2373 1

原创 python RSA 公钥解密方法

背景常见的RSA加解密使用方式是:公钥加密,私钥解密。私钥签名,公钥验签。但我在项目上却遇到了一个用python解决公钥解密的问题。查了好多资料最后完成了这需求,记录一下。解决1、代码示例import base64from rsa import core, PublicKey, transform def public_key_decrypt(rsa_public_key_der_b64, qr_code_cipher_b64): qr_co..

2020-12-22 12:29:41 6053 2

原创 python的定时任务(线程)

背景当我们在写业务逻辑时,常常会用到一些定时触发的任务,比如定时清理、定时补偿、定时报警、定时同步、定时发送等等等。这些任务一般是轻量级的,因此使用一个线程去处理即可。介绍两种实现方式,方式一是使用python内建模块sched,方式二是使用第三方模块schedule。内建sched模块sched模块实现了一个通用事件调度器,在调度器类使用一个延迟函数等待特定的时间,执行指定的任务(函数)。同时支持多线程应用程序,在每个任务执行后会立刻调用延时函数,以确保其他线程也能执行。step.

2020-09-22 10:07:14 1403

原创 alpine linux 安裝python指定版本以及pip

1、准备1.1、安装编译器apk add build-base //安装 GCC等工具1.2、安装编译时的依赖库apk add --no-cache -U zlib-dev //安装zlib-develapk add --no-cache -U openssl-dev //安装openssl-devel2、下载指定版本的python源码手动下载:https://www.python.org/downloads/source/命令下载:wget https://...

2020-08-05 10:40:40 9660 1

原创 python pip install 常见错误 (leveldb numpy gevent 等)

1、背景项目中需要使用Alpine Linux,并且运行python程序,于是使用docker启动了一个alpine容器。但是由于Alpine Linux是超精简Linux发行版,里面除了内核外,其他工具或者组件全都没有。因此,想要运行Python程序,必须安装Python环境。安装完python之后,python程序依赖的包却不存在,因此,需要pip install 安装一些依赖包,但是通过apk add安装的python不带pip工具。于是,开始安装pip。安装完pip之后,通过pi

2020-08-03 12:28:57 1004 1

原创 pip3 ImportError: cannot import name ‘main‘的解决办法

使用pip3时出现如下错误:Traceback (most recent call last): File "/usr/bin/pip3", line 9, in <module> from pip import mainImportError: cannot import name 'main'解决方法:网上了一些大概总结如下:1、把 /...

2019-10-15 17:50:25 401

原创 linux下安装配置arm交叉编译器

1、下载并解压交叉编译压缩包一般由芯片厂商提供,也可以通过网上下载。2、修改编译器目录bin下可执行程序名字。由于有的编译的名字并不是arm-linux-***的格式,这样用起来并不是很方便,可以通过ln命令创建软连接,建议编写一个shell脚本,内容如下:#!/bin/shsudo ln -s arm-linux-gnueabi-addr2line arm-linux-addr...

2019-05-27 16:16:36 4458

原创 ubuntu下搭建QT开发环境

1、下载最新Qtcreator(IDE)下载链接:http://download.qt.io/development_releases/qtcreator/建议下载最新版本,功能最丰富。2、下载QT源码下载地址:http://download.qt.io/archive/qt/例如:qt-everywhere-opensource-src-4.8.5.tar.gz下载...

2019-05-24 14:03:06 1252

原创 ubuntu卸载安装的方式

1、查找已经安装的插件查看全部:dpkg -l查看相关 :dpkg -l | grep <筛选目标>例如:dpkg -l | grep gcc2、卸载apt-get remove <dpkg -l的结果>例如:apt-get remove libgcc-4.8-dev注意:卸载过程中会有依赖关系而产生报错,需要自己确认相互依赖的关系,遵循...

2019-05-24 11:59:08 1082

原创 JNI 使用注意事项

前言:     如果你是为了让Java调用C语言,使用复杂的JNI大可不必,可以选择更简单便捷安全的方式——JNA。当然,如果用C调用Java,那就只能用JNI了。JNI使用复杂,尤其是提供的函数使用时一定要注意内存问题。因为Java层申请内存后是没有内存释放的,完全依赖java虚拟机来释放,而C层不然,必须时刻谨记申请的内存一定要及时释放。JNI函数大全可参考:https://www.c...

2018-10-30 17:42:50 1147

原创 Linux下使用Git上传和更新代码(GitHub或码云)

一、上传代码1、去github(码云)上根据网站的提示来创建自己的远程Repository(仓库)2、建立本地git仓库      $ git init注意:此指令本地源码根目录执行,执行成功后,会在当前目录生成一个隐藏的名字为“.git”的目录。所有对本地仓库的操作信息都在此目录下存储。3、将项目的所有文件添加到本地仓库中       $ git add .说明:此处...

2018-09-06 10:32:33 10824

原创 Ubuntu下Codeblocks::IDE的控制台程序中文显示乱码

1、修改Codeblocks的控制台终端,在Setting -&gt; Environment... -&gt; Gerneral settings中修改如下图所示位置:默认的是 xterm的终端,改为 Ubuntu的gnome终端。2、如果ubuntu是英文的,需要添加中文支持执行第一条指令:sudo locale-gen zh_CN.GB18030 ( 关于locale-gen...

2018-08-17 15:52:21 837

原创 Ubuntu下使用SCM Micro’s SDI011双界面读卡器驱动

1、安装libusb下载libusb源码,解压,编译,安装2、安装pcsclite下载pcsclite源码解压,编译,安装./configure –enable-libusb –disable-libudev –enable-usbdropdir=/usr/local/pcsc/driversmakesudo make install(说明:如果上述1和2步骤无法进行,可以...

2018-08-15 14:26:36 1660

原创 Ubuntu下安装并使用pcsclite

linux安装并使用pcsclite库,当然可以使用最直接的方法,先下载源码,然后编译并安装,这种方式很普遍,但很繁琐,不仅需要下载pcsc的源码,还要下载所有依赖的库源码,并且都要编译安装。我接下来介绍的方式比较简单。1、下载deb包Ubuntu其实已经做好了pcsclite的安装包了,只需要下载下来即可 https://launchpad.net/ubuntu/+source/pc...

2018-08-10 14:30:48 6327

原创 MFC中控件Group属性的理解

Group属性有以下特点:    特点1:同一组内所有控件类型相同。    特点2:同一组内设置为Group属性的控件,大于其ID,小于下一个有Group属性的控件的ID的所有控件都是该组中的控件。    特点3:同一组内的所有控件是互斥的。    特点4:同一组中所有的控件只能由一个变量进行关联。举例说明:如上图,窗口上有6个Radio控件,将其分为两组A和B。R...

2018-07-19 10:22:37 4621

原创 Window,VS开发:CString 转 char*

由于VS中字符编码分为Unicode字符集和多字节字符集,所以字符串转char*的情况分为两种,要分别对待。intCStrToUChar(unsignedchar*pChar,CString&amp;pCString){#ifCHARACTER_CODEDING_UNICODE //Unicode字符集 intlen; len=WideChar...

2018-07-19 10:20:43 258

原创 Libtool源码在Linux环境下编译成win32的动态库

1、linux下安装交叉编译器——mingw32我用的是ubuntu虚拟机,直接使用终端命令安装即可:sudo apt-get install mingw32。注意:如果此处安装失败,原因可能是Ubuntu系统的软件更新源有问题,换一下软件源即可。具体方法问度娘。2、编译libtool下载libtool源码解压libtool软件包进入解压后的lbtool目录,阅读readm...

2018-07-19 10:06:58 1215

原创 Linux环境下交叉编译 GmSSL库

1. Github下载GmSSL2. 编译本机平台的库(参考README.md)    $ ./config    $ make    $ sudo make install3. 交叉编译(参考Configure)    $ ./Configure --cross-compile-prefix arm-linux- (注:此处的arm-linux-是我使用的交叉编译,请根据实际需...

2018-07-19 09:56:15 2665

原创 Source Insight4.0 Style Properties(样式属性)配置

习惯了Visual Studio的代码编辑套件VASSISTX的代码配色方案,于是将Source Insight4.0的代码配色方案也改成同样的。 配置对应的xml文件内容如下:(背景颜色为浅绿色保护眼睛:RGB 217,238,219)<SourceInsightConfiguration AppVer="4.00.0084" AppVerMinReader="

2018-02-06 21:28:57 3320

8583报文解析工具源码

基于QTCreator开发的工具软件。该软件使用github上开源软件项目:EasyISO8583。主要功能是ISO8583报文的解析。

2019-03-11

8583报文解析工具客户端forWin

8583报文解析工具软件,可进行域格式自定义配置,批量报文导入,日志输出。 如果执行程序有问题,可参考源码。源码也已经公开了。

2019-01-08

空空如也

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

TA关注的人

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