- 博客(59)
- 收藏
- 关注
原创 i386下 C C++ 函数调用时的参数传递方法
基本上,i386将所有参数保存到栈上。但是,可以通过GCC的扩展功能__attribute__((regparm())),也可以实现部分参数的寄存器传递。
2024-10-18 16:56:46
980
原创 x86_64下 C C++ 函数调用时的参数传递方法
在x86_64上,整型和指针类型的参数会从左至右依次保存到rdi、rsi、rdx、rcx、r8、r9这6个寄存器,浮点参数会保存到xmm0、xmm1.....等寄存器中。当参数个数超过了这些寄存器的限制,多余的参数就会保存到栈上。
2024-10-15 11:56:24
547
原创 QT读取ini文件的一个坑
后缀名为.ini的文件是一种常用的配置文件格式,用于存储和读取应用程序的配置信息。Qt提供了方便的API来读写.ini文件,使得配置信息的管理变得简单快捷。Qt中读写.ini文件主要是使用 QSettins 类。
2024-09-27 17:08:50
348
原创 与GDB调试有关的栈知识
系统中,除了进程的栈大小有限制,实际上每个线程的栈大小也有限制。多线程编程时,各个线程使用的栈的总和不能超过进程许可的栈大小,所以,要注意各个线程的栈大小限制,设计应用程序时一定要注意栈的使用量。
2024-09-24 17:15:58
601
原创 Intel架构的基本知识
32位模式下最多能指定16383个段,各段的最大大小为2^32字节。64位模式下采用了平坦模型,因此可以使用64位线性地址。不能使用分段式内存模型。
2024-09-20 18:45:44
1112
原创 GDB的基本使用方法(之二)
要调试守护进程(daemon process)等已经启动的进程,或是调试陷入死循环而无法返回控制台的进程时,可以使用attach命令,形式是:(gdb) attach PIDattach之后就能使用普通的gdb命令,因此可以通过print显示变量,也可以设置断点。此外,回复程序运行一般可以使用continue命令。确认了行为之后,需要在gdb和进程分离时使用detach命令:(gdb) detach
2024-09-14 17:25:17
991
原创 GDB的基本使用方法(之一)
既然有这些副作用,那为什么还要加上-O2的优化选项呢?因为如果不加上优化选项,那就必须管理有优化和无优化的两种可执行文件,因为有时候一个bug可能在未优化版本中存在,但是在优化版本中不存在,这样,管理成本会上升。所以,编译程序时还是加上优化选项。
2024-09-12 11:33:41
829
原创 加锁造成的线程优先级反转
优先级反转(Priority Inversion),也称优先级翻转,一般是在优先级不同的多线程环境中发生。在桌面操作系统中,线程的优先级不是太重要,因此较少见优先级反转的现象。但是,优先级反转是实时操作系统(RTOS)中一个常见的问题,特别是在采用优先级调度算法的系统中。这个问题通常发生在多个线程共享一个资源(如一个互斥锁或信号量)时,低优先级的任务意外地阻塞了高优先级的任务。
2024-09-05 11:20:24
1310
原创 C++ MQTT客户端库libmosquitto的使用
安装好MQTT服务器Mosquitto之后,就可以使用Mosquitto提供的客户端库开发MQTT客户端软件了。本文以Ubuntu上使用Mosquitto的客户端库为例子。
2024-09-03 20:05:58
1180
原创 Ubuntu固定USB串口名(包括1拖N的USB串口)
有时候,我们通过 输入dmesg | grep ttyUSB*命令,查看传感器所接上的USB串口的KERNELS,会发现,1拖N的USB串口,只有一个ID,一个ID就无法区分多个USB串口了。这个时候,可以使用
2024-09-02 17:12:08
1569
原创 QT中HTTP请求的同步和异步接口
有了异步接口和同步接口,应用HTTP请求就会很方便了。但是,异步接口编程的代码看起来还是有些凌乱。另外,实际编程任务重,有些HTTP请求并不需要立即获取结果,只需要在某个时候查询即可。所以,可以考虑将异步接口封装成异步任务
2024-08-29 16:14:11
1562
原创 C++日志模板库SPDLog的使用
只需要将从https://github.com/gabime/spdlog 下载的SPDLog整个代码文件夹添加到项目,然后将以上的Log.h和Log.cpp添加到项目,就可以在代码中使用该类的对象输出日志了
2024-08-28 16:31:11
463
原创 C C++ Winows网络编程头文件冲突
(1)Windows.h和winsock2.h的冲突:(2)mswsock.h和winsock2.h的冲突
2024-08-12 09:13:08
642
原创 Linux下用gdb找到cpu占用率最高的线程
一般情况下,程序执行时,cpu占用率比较高的话,就会影响其它程序的执行,所以就需要对程序进行优化,查找程序运行时,程序中cpu占用率最高的线程,并优化之。
2024-08-10 19:19:33
790
原创 C C++ 中自定义可变参数函数调用其它可变参数函数
C++11 开始,引入了可变参数模版,就让在自定义可变参数函数中,调用其它可变参数函数变https://img-blog.csdnimg.cn/img_convert/52357f4fa522497e902fdb606b4e5790.png得很简单了
2024-08-07 11:19:08
460
原创 PCL中 的 kd-tree
kd-tree 可以实现有效的《范围搜索》和《最近邻搜索》。《最近邻搜索》是处理点云数据的核心操作,可用于查找点组或特征描述符之间的对应关系,或者,定义一个或多个点周围的局部邻域。
2022-09-09 10:21:28
1436
原创 ZendFramework2学习笔记 验证码
ZF2提供了图片验证码Zend\Captcha\Image和符号字符验证码Zend\Captcha\Figlet,图片验证码是网站应用中见得比较多的一种验证码,本文以图片验证码为例。
2014-12-12 15:22:54
1644
原创 Linux下C/C++代码调用PHP代码
Linux下C/C++代码可以通过popen系统函数调用PHP代码并通过fgets函数获取PHP代码echo输出的字符串。
2014-12-05 11:19:20
2475
原创 ZendFramework2学习笔记 发送email
ZF2中发送email有2种方式,一是通过系统的邮件程序发送email,二是通过smtp协议使用远程的smtp服务器发送email。
2014-12-02 16:27:18
2419
原创 ZendFramework2学习笔记 文件上传、文件上传进度
关于文件上传进度的获取方式,zf2提供了三个类:Zend\Progressbar\Upload\ApcProgressZend\ProgressBar\Upload\SessionProgressZend\Progressbar\Upload\UploadProgress 其中SessionProcess要求php5.4以上,本文以SessionProcess为例,其他2个使用方法一样。
2014-11-26 17:38:55
2028
原创 ZendFramework2学习笔记 表单过滤、表单验证
ZF2有很多内建的Filter和Validator组件,可以方便地对表单数据进行处理。
2014-11-20 20:44:15
3054
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人