
linuxC/C++
我是是是是是西红柿
上善若水
展开
-
Gmssl实战
最近项目要引入gm算法,实现aes和sm4数据加密,研究了一下两个系统的安装和测试用例。这里说下我要用的gm库的格式,为静态库,mt,所以需要修改cmakelists.txt。gmssl_use.c 我用packet_id做iv的生成条件。windows, 从github下载GmSSL库(打开x86cmd.bat,解压GmSSL到目录。安装完后,我们可以在目录中找到gmssl.lib。linux,从github下载GmSSL库(),以下为安装方法。),以下为安装方法。依次执行以下命令安装。原创 2025-04-21 18:06:09 · 505 阅读 · 0 评论 -
c语言jni实战,双系统
①安装jdk,去java官网下载,这里使用版本jdk-23_windows-x64_bin.exe。新建系统变量 JAVA_HOME:C:\Program Files\Java\jdk-23。#centos ,我使用的centos,其他系统安装方式不同。③在环境变量的PATH中新增 %JAVA_HOME%\bin。1.首次编写jni接口代码,需要安装java。2.配置jni环境变量(linux接第一步)④重启计算机或visual studio。是你jdk的安装路径,默认是这个。②安装完毕后设置环境变量。原创 2025-04-14 11:24:17 · 469 阅读 · 0 评论 -
linux内核模块编程
设计一个内核模块,并在此内核模块中创建一个内核链表以及两个内核线程。•线程1需要遍历进程链表并将各个进程的pid、进程名加入到内核链表中。•线程2中需不断从内核链表中取出节点并打印该节点的元素。在卸载模块时停止内核线程并释放资源。Makefile。原创 2025-04-14 10:39:08 · 529 阅读 · 0 评论 -
libevent的网络限速设置
【代码】libevent的网络限速设置。原创 2025-04-10 14:43:37 · 108 阅读 · 0 评论 -
linux c转windows c要做的事情。
检查源代码是否使用了Linux特有的API或库。文件系统相关Linux下面,文件换行是"\n",而windows下面是"\r\n"。Linux下面,目录分隔符是"/",而windows下面是"\"。Linux中可根据stat的st_mode判断文件类型,有S_ISREG、S_ISDIR等宏。原创 2024-08-15 18:40:05 · 1413 阅读 · 0 评论 -
linux c 自己实现ini格式的reader
代码中使用了glib库作为数据结构,如果使用其他的,请自行替换。原创 2024-07-25 15:20:50 · 418 阅读 · 1 评论 -
linux c 子路径剔除
将一个路径集传入,剔除子路径。原创 2024-07-25 15:11:37 · 262 阅读 · 0 评论 -
linux c 特殊字符分割
以上代码实现了字符串根据特殊字符分割,并放入glib的数组(GPtrArray_autoptr是指针数组)里面。如果项目有引用其它的数据结构,也可以替换这个数组。原创 2024-07-25 15:02:10 · 350 阅读 · 0 评论 -
16位MD5转32位字符串
【代码】16位MD5转32位字符串。原创 2024-07-25 14:55:49 · 222 阅读 · 0 评论 -
linux c 获取当前程序的运行路径
获取当前程序的运行路径。原创 2024-07-25 14:51:57 · 270 阅读 · 0 评论 -
C++11-17特性自用
以下我想实现一个等级阶段的结构适配。原创 2023-07-17 15:11:05 · 192 阅读 · 0 评论 -
std::function相关用法
类模版std::function是一种通用、多态的函数封装。std::function的实例可以对任何可以调用的目标实体进行存储、复制、和调用操作,这些目标实体包括普通函数、Lambda表达式、函数指针、以及其它函数对象等。这是比较官方的解释,最近在学习std::function的用法,看了一些示例后,记录一些自己的用法和理解。原创 2023-02-08 18:50:35 · 336 阅读 · 0 评论 -
工厂模式精简实现
记录一个工厂模式简单的实现,其中COrder是最基类。#pragma oncestruct IFactory{ virtual COrder* CreateOrder() = 0;};template<typename T>class CFactoryOrder :public IFactory{public: static IFactory* GetInstance() { static CFactoryOrder FactoryOrder; retu..原创 2022-05-05 21:13:44 · 454 阅读 · 0 评论 -
线程间通讯实例
简单实现了线程通讯,记录下,直接上代码。发送线程:#define MY_SHELLMENU_MSG WM_USER+200int iCmd=0,iMinID=0;PostThreadMessage(nThreadID, MY_SHELLMENU_MSG, (WPARAM)iCmd, (LPARAM)iMinID);1.上面的线程id需要自己获取,你要发给哪个线程就是了。2.消息是自定义的3.icmd和iMinID可以是任意类型接收线程:while (true)原创 2021-09-28 21:26:40 · 150 阅读 · 0 评论 -
VC++ 关于VC6.0编译环境的数据断点调试
由于VC6.0这个编译环境比较老了,但是有好多老项目是用的,而且vc6转高版本,05,08,10,会有多多少少大大小小的问题。比如VC6.0是可以这样写的#define MAX_INDEX_NUM 10 VOID 优快云::Function(){ for(int i=0;i<MAX_INDEX_NUM;i++) { //do something } for(i=0;i<MAX_INDEX_NUM;i++) {原创 2021-03-29 20:59:20 · 1003 阅读 · 0 评论 -
zbar+opencv配合实现条码识别
1.安装opencv2.安装zbar3.注意程序中链接库配置#include #include #include #include #include #include using namespace std;using namespace cv;using namespace zbar;int main(int argc, char **argv) { I原创 2017-08-02 16:08:39 · 2759 阅读 · 2 评论 -
libxls库的使用
头文件xls.h链接库xlsreader xlsWorkBook *pWb=NULL;//文件 xlsWorkSheet *pWs; //Sheet xlsRow *row_current;//提取行 int r,c; const char b[]="UTF-8";//编码方式 pWb = xls_open("文件路径",b);//这里如果打不开 ,在路径正确的同时,原创 2017-08-09 17:17:00 · 6901 阅读 · 2 评论 -
pugixml使用
头文件pugixml.hpp链接库pugixml pugi::xml_document doc; /*if(!doc.load_buffer("",0)) pugi::xml_document doc; if (!doc.load_file(“文件路径”, pugi::parse_default, pugi::encoding_utf8))//加载xml文件,原创 2017-08-09 17:31:36 · 3428 阅读 · 0 评论 -
ubuntu 16.04 配置java环境变量
1. http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html根据系统环境选择下载JavaSE 我这里是 linux x64 tar2.解压 解压后 mv jdk1.8.0_144 /opt/Java/jdk1.8.0_1443. vi原创 2017-10-09 14:16:19 · 445 阅读 · 0 评论 -
vim 配置.vimrc
文件写入" This line should not be removed as it ensures that various options are" properly set to work with the Vim-related packages available in Debian." Uncomment the next line to make Vim more原创 2017-08-02 15:57:01 · 293 阅读 · 0 评论