自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(59)
  • 资源 (6)
  • 收藏
  • 关注

原创 调用Section内某个地址的函数

rt-thread中c语言调用section中的函数

2023-12-26 16:58:10 398

原创 lamda表达式,以及sizeof表达式的返回值

c++11有支持lamda,但是这个东西,个人用不习惯,所以用的不多。最近看了一些库的源码,里面用了挺多lamda表达式的,因此网上查了一些资料,在这里做个记录。这种情况下,lamda对象的大小是4字节,特点是在定义lamda对象后,如果修改引用参数的数值,lamda对象内的a的值会随之改变。可见,lamda是个匿名的函数对象。既然是对象,那肯定有size了,最小就是1个字节。这种情况下,lamda对象的大小就是4个字节(32位系统)这种情况下,obj的大小就是1个字节。3. lamda对象的大小。

2023-06-15 15:15:11 621

原创 libwebsockets使用记录

后来变成多个客户端访问后,又出现了crash的问题,而且问题看上去和第一次高频通讯,发生trunc后crash一样。网上查了资料后,感觉方向可能是堆栈太小导致的,后来讲堆栈放大一点(放大了10倍,100K字节),问题就再也没有发生过。原因在于,一开始在callback外面,直接调用lws_write去发送数据。之前基于libwebsockets做了实时的web socket通讯,多个客户端访问,报文按照50ms传输。1. 高频通讯过程中,写数据发生trunc错误,导致程序崩溃。2. 多个客户端访问。

2023-04-12 10:20:04 428 1

原创 python代码交叉编译成so文件

python代码交叉编译为so文件

2023-04-10 18:12:29 1149

原创 vs基于hiredis.lib生成可执行文件/dll

windows vs编译基于redis的客户端程序,报错,未定义_replace_setsockopt和_strerror_r。但是已经添加win32fixes.c文件

2023-04-10 17:45:11 167

原创 openssl做文件处理(base64,MD5,sha256等)

使用openssl进行文件转码、解码,md5等码值的计算。

2022-11-26 10:33:19 2608

原创 通过openssl非对称加密解密

使用openssl的命令行和EVP接口实现非对称加密

2022-11-23 14:01:50 1355

原创 使用openssl应用层接口(EVP_***)实现对称(aes,idea等)加密

通过调用openssl的库函数,来实现对称加密

2022-11-17 14:23:13 1051

原创 使用openssl对文件进行aes加密

c/c++调用ssl库,对文件加密,再解密后,解密后的文件尾部会出现乱码。原因在于加密的时候没有补0

2022-11-15 17:59:55 3825

原创 libcurl上传、下载获取进度

通过libcurl的CURLOPT_XFERINFOFUNCTION和CURLOPT_XFERINFODATA,获取上传、下载文件的进度

2022-09-30 14:54:31 2321

原创 windows下使能/关闭硬件

windows下禁用/启动设备

2022-09-13 15:00:45 421

原创 vsftp配置多用户

vsftpd配置多用户,并且每个用户设置不通的根目录

2022-09-02 15:18:09 1365

原创 docker服务无法关停的原因

docker服务无法关停的原因在于,如果没有关闭docker.socket服务,那么只要执行docker指令,docker.socket就会激活docker服务

2022-08-06 11:06:32 4890

原创 OPC(DCOM)线程模式

OPC读数据的线程模式

2022-08-02 11:08:52 401

原创 函数对象使用

函数对象可以支持函数指针、普通c++函数、c-style(extern "c")函数、类成员函数

2022-07-30 22:40:28 106

原创 源码安装python

手动编译python碰到问题的记录

2022-07-30 13:32:57 5341

原创 gcc链接完整的库的名字(库带上版本信息)

链接时指定完整的文件名

2022-06-24 16:49:19 722 1

原创 Linux服务程序在容器外执行容器内的脚本

以服务形式(通过systemctl或者/update-rc.d管理的程序)运行的程序,执行容器内的脚本或者指令时,需要删除 “-ti"

2022-06-24 16:35:42 581

原创 实现自定义对象的to_string()

写一个to_string,将自对象转成字符串

2022-05-27 13:47:39 449

原创 使用golang解压带有文件夹的tgz文件

使用golang去解压缩带有文件夹的tar.gz或者tgz文件

2022-05-26 16:26:32 821 2

原创 系统定时服务(systemctl和timer)

linux通过systemctl和timer来设置定时服务

2022-05-19 08:48:58 1445

原创 log4cplus增加对运行路径的支持

修改log4cplus代码,配合日志配置文件,让它支持绝对路径+相对路径的方式来管理日志文件

2022-05-08 10:53:56 440

原创 x86电脑上下载debian的arm64的包

在x86电脑上下载debian-arm的安装包

2022-05-04 16:26:19 2210

原创 OPC DA数据采集过程中所有数据为空问题分析

OPC通讯过程中连接正常,但是数据全为空问题分析

2022-04-26 09:33:42 2583

原创 父进程退出后,子进程自动消亡

脚本(父进程)退出后,子进程自动退出

2022-04-22 20:22:37 3748 1

原创 linux64位系统兼容32位程序(不下载兼容包)

64位系统兼容32位系统,正常通过apt指令安装兼容包即可。也就是两条命令的事情:apt-get install gcc-multilibapt-get install g++-multilib安装完后,32位的程序就可以在硬件上跑了。但是现场已经在使用的硬件产品,因为硬件网络是定向网络(IOT定向卡,限定了访问的IP地址,目前无法访问163和交大的源),所以这些设备上无法执行apt指令。当然,可以在公司将需要的deb下载下来,然后升级的时候,目标设备下载下来后,dpkg -i来安装这些

2022-04-21 17:21:48 3180

原创 Linux下的守护程序

Linux下守护应用的程序,当程序挂掉后,将程序重新拉起来

2022-02-13 12:26:51 1008

原创 物联网卡定向后引起网络通频繁掉线

物联网卡设置定向后,引起网络编的不稳定

2022-02-10 18:28:21 2775

原创 Docker容器内网络通讯的怪问题

最近项目碰到了一些问题,因为自己认知能力的问题,导致这些问题看起来非常古怪,不合常理。在这里记录一下,以后如果自己在其它地方找到答案了,到时候回过头来更新一下。网络结构如下所示:网关与目标设备device1, device2, device3通过交换机进行连接。网关内创建有C1,C2,C3这3个容器,分别于device1, device2, device3通讯。运行过程中,出现了有意思的问题是,device1~3中任意一个发生断电,比如device1断电了,那么会产生这个现象:1. c1内的

2022-01-31 17:45:27 1621

原创 opc采集数据(DCOM配置没有问题,但是无法建立连接)

虽然之前使用过opc来采集数据,但是因为这块的内容不是自己负责的,所以也就是知道怎么去用,代码的一些细节没有看过。2021年负责这个的伙伴离职了,因此有的时候必须得自己上了。恰好1月份某钢铁厂的项目中,针对西门子840D,碰到了一个有意思的问题。就是DCOM配置是没有问题的,在网关内通过测试工具,可以读取设备的CLSID,也可以连接上设备,读取数据。但是我们自己的代码,无法连接设备,另外,Matrikon的客户端也无法连接。通过单步调试,发现问题是出在每次到了这里就是fail。wireshark

2022-01-31 17:14:32 1896

原创 docker使用的记录

这段时间稍稍使用了docker,以后不见得能用到,好记性不如烂笔头,记录一下1. docker的安装添加源sudoadd-apt-repository \ "deb [arch=amd64] https://mirrors.ustc.edu.cn/docker-ce/linux/debian\$(lsb_release -cs)\ stable"安装命令:sudo apt-get install docker-ce docker-ce-cli contai...

2022-01-28 17:08:40 1375

原创 (docker)容器内使用IPV6

关于这个话题,其实在csdn上找,能找出很多帖子。但是大部分都令人失望,就是按照帖子上去配置,容器内网络是无法通的。最后找到了这个帖子:https://www.modb.pro/db/98021按照这个老哥的操作,坐下来,算是真正成功了。感谢这个老哥,尤其是这个的这段话,简直就是精华:另外,下面这个链接,IPv6 Subnet Calculator - subnettingpractice.com可以用来计算fixd-cidr-v6的数值,按照老哥在文中的步骤,1,2,3,4去.

2022-01-06 14:53:44 893

原创 go开发的程序在windows中作为服务启动后处于SERVICE_START_PENDING

上周对现场windows网关进行软件安装时,发现一个问题。就是部分网关内的软件没有升级成功,原因有多个,不过其中有一个盒子,情况比较有意思,就是盒子中用go写的服务都没有真正处于运行状态,而是处于SERVICE_START_PENDING状态。因为这个原因,导致程序无法升级。 一开始只是怀疑这个问题是nssm配置不对引起的,不过后来我重新做了测试验证,发现,与猜测的不符合。 周末上网查了下资料,发现,golang开发的程序,作为windows系统的服务,一直有这个...

2022-01-06 14:36:02 1214

原创 不同设备拿到了相同的mac地址(arp和nbtstat)

通过arp查到组网设备使用了同一个mac地址,不过用nbtstat可以获取到真正的mac地址

2022-01-01 20:17:23 3159 1

原创 使用jigdo下载历史版本的debian镜像

上次项目碰到了两个问题,一个是无法将opencv在64位的系统中编译成32位的库,这个的话,后来通过一通摸索,也算是解决了问题(当然,关于CMAKE的使用,还是要加强学习)。另外一个问题,就是当时需要下载一个32位的debian10.4的镜像(因为当时我找不到办法在64位系统中编译32位的opencv库,所以想下载一个32位的镜像,然后在这个32位的镜像中编译opencv),然后去debian网站看了一圈,发现已经没有可以直接下载debian32位iso文件的链接了。对于历史版本,需要通过jigdo这个工具

2021-12-24 12:47:17 2921

原创 seetaface非法指令集

项目中使用了seetaface6来做人脸识别,程序在虚拟机和服务器中都可以跑起来,所以当时就认为没什么问题了。谁知道移植到网关中运行后,直接崩溃,非法指令集。两者的差别是什么呢?服务器和网关都是基于X86架构的,虚拟机和服务器都是64位的机器,而网关是32位的机器,难道需要编译成32位的程序?为了验证这个想法,重新编译所有的seetaface的库,尤其是那个tennis,让人蛋疼,一搞就是5个小时。还有那个opencv,也让人蛋疼。最后编译出来了,结局让人心碎,还是非法指令集。这也不行啊

2021-12-20 10:45:28 1098

原创 64位系统中编译32位的opencv库

这两天真的有被项目折磨到,为了验证自己的一个想法,需要在64位的机器上使用32位的opencv的库。其实这个库可以通过apt去下载,但是我使用的系统中,用的软件可以依赖关系有点杂乱吧,导致我apt install的时候,无法直接安装。如果使用aptitude安装的话,又会移除一堆软件,再重新安装一大堆包,总之,看了让我心里没有底,怕影响到其它软件的正常运行。最后,就选择基于源码去编译。一开始想法是通过在CMake的时候传入PLATFORM参数来进行设置,但是失败了。网上查了资料,没有找可用的方案。有个兄

2021-12-20 10:19:14 2968

原创 老设备连接samba服务器

最近项目中,需要支持老掉牙的设备的DNC功能。该设备通过samba服务器,访问网关的文件夹,实现DNC功能。在网关中(该网关使用debian系统)安装完samba,并且配置好后,有意思的事情发生了:1. 同事A和B的电脑都可以通过samba访问debian网关的文件夹,但是我的电脑就是不行。2. 目标设备(也就是那个老的掉渣的设备),无法通过samba访问debian网关的文件夹。3. 在另一个网关(ubuntu16的系统,后面简称u16,也安装了samba),目标设备可以通过samba访问u1

2021-12-14 14:39:17 996

原创 modprobe vboxsf failed问题修复

前两天在虚拟机调试时,在排查问题时,对内核进行了升级。升级后,虚拟机的共享文件夹就无法使用了。按照网上找的资料,建议几乎都是重新安装VirtualBox Guest Addtions。然后Linux下安装这个东西基本就是分下面几步:1. 在virtualbox中加载VBoxGuestAddtions.iso,如下所示:这一步操作之后,在宿主机上,可以看到CD-Rom盘中,会出现VirtialBox Guest Addions,如下所示:2. 将cd-rom中的内容映射到另一个文件夹.

2021-12-08 16:56:27 1403

原创 debian下切换内核

最近在硬件上测试拨号,在排除问题的过程中,升级了内核。结果升级完后,不但不能解决问题,反而带来了新的问题。因此需要将内核版本降下来。网上参考了很多文章,经过了一番测试,最后算是解决了问题。在此记录一下,一方面怕自己时间长了忘记了,另一方面,如果有网友碰到类似的问题,可以借鉴。话不多说,有效的解决办法有两种:1. 修改/etc/default/grub文件关于修改这个文件,无论是csdn还是stackexchange等网页上,都提到可以修改该文件中的GRUB_DEFAULT参数来实现内核的切换。并

2021-12-07 14:11:42 3402

tcplib.zip

异步tcp通讯库,包含测试使用的客户端和服务端程序。程序支持linux和windows平台。其中linux平台下测试过。

2020-09-19

uc_os系统的vc6.0版本

uc_os嵌入式操作系统在vc6.0下的实现代码 方便调试

2011-11-07

Linux与Unix Shell编程指南

Linux与Unix Shell编程指南

2011-11-07

不重启修改IP地址(vc6.0)

在vc6.0条件下 不用重启就能修改IP地址

2011-11-07

vc实现类似vxworks下消息队列和信号量的功能

最近在做vxworks下的项目开发 感觉其自带的消息队列MSG_Q_ID和信号量SEM_ID特别好用。于是想办法在vc做了个类似的东西,函数原型都一致。这样,我在vxworks下做好的程序几乎不用做太多修改,就可以移植到windows平台下来了,个人觉得还是蛮好用的

2011-09-14

我写的登录程序

具体运行时出现问题已经写在里面了 不能实现更该密码 和 注册的功能 希望高手们给我指点一下 最好能把你们建议修改的源码以注释的形式写在上面 我很想努力学好编程语言 已经弄了好几天了 也没找着原因 希望大家能够帮帮我 给大家带来麻烦的地方还请原谅 谢谢

2007-10-15

空空如也

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

TA关注的人

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