- 博客(109)
- 资源 (65)
- 收藏
- 关注
原创 C++的Linux程序在崩溃(coredump)后,打印调用堆栈的方法,支持x86和ARM
Linux程序如果使用-g编译,若程序发生崩溃(coredump),是可以使用gdb调试生成的dump文件,找到崩溃的位置的。然后C++有一些组件是提供崩溃堆栈打印的,本文给出boost::stacktrace和Backward-cpp打印方法。.........
2022-07-25 09:42:27 6141
原创 C++多进程master-worker工作机制较完整的实现,边端和云端协同工作实现
1、 master进程(master_app) :worker进程的守护进程,监控和管理引擎,提供worker进程策略下发、收集worker进程数据上报 2、worker进程(worker_app): 取流解码、分析推理进程 |3、轨迹视频叠加服务(draw-track-server) ,基于openresty开发的,在视频上画轨迹的服务。............
2022-07-23 13:43:32 1645
原创 C++11 异步执行函数的封装,异步执行阻塞或CPU密集型应用,延迟执行函数
C++11 异步执行函数的封装,异步执行阻塞或CPU密集型应用,延迟执行函数异步执行需要线程std::thread的配合。本文给了使用线程池的方案,以及不使用线程池的方案,关注NOT_USE_THREAD_POOL宏;提供了立即异步执行函数really_async也提供了延迟执行函数,delay_call,比如延迟1秒执行函数,提供同步和异步执行。...
2022-07-05 08:48:32 599
原创 基于openresty实现的文件推送功能,实现对客户端的监控和更新。基于openresty共享内存,http服务接受上传文件,由tcp服务推送文件至tcp客户端。
基于openresty实现的文件推送功能,实现对客户端的监控和更新。基于openresty共享内存,http服务接受上传文件,由tcp服务推送文件至tcp客户端。云端(服务端): nginx+lua,边缘端(客户端):C++11/boost.........
2022-07-01 03:40:38 866
原创 C++实测无锁队列concurrentqueue、boost.spinlock 和 std::mutex 在多线程情况下的性能表现
测试mutex 和spin lock的区别,参考mutex 和spin lock的区别;多线程读写concurrentqueue单线程读写readerwriterqueue测试验证基于C++ STL利用CAS原子操作封装的无锁list
2022-07-01 03:24:36 704
原创 C++ 基于boost.asio封装的日志库,支持输出到文件、控制台和syslog远程日志,支持变长参数的日志输出
C++ 基于boost.asio封装的日志库,支持输出到文件、控制台和syslog远程日志,支持变长参数的日志输出
2022-07-01 02:24:20 551
原创 C++实现telnet动态调试模块:将日志输出到telnet终端,通过telnet终端调用自定义注册的函数
telnet动态调试模块:将日志输出到telnet终端,通过telnet终端调用自定义注册的函数
2022-06-30 08:18:56 754
原创 使用C++11 基于二进制的序列化与反序列化,支持C++基础类类型及stl容器类型。
基于二进制的序列化与反序列化,支持C++基础类类型及stl容器类型。支持: 1、可平凡复制类型 (C++ POD概念,支持按位复制的类型) 2、std::string。 3、容器类型 4、std::pair类型理 5、std::tuple 元组...
2022-06-30 08:16:47 551
原创 使用pyqt5、pyopengl、opencv做视频渲染和轨迹绘制的示例程序
+ 支持h264文件播放模块,在h264文件模块添加帧总数;+ 需要搭配时间戳文件(time_stamp.txt)使用,以方便显示播放进度;+ 有播放、暂停和停止功能;+ 使用opengl渲染;+ 有轨迹叠加演示;
2022-06-30 08:15:28 735
原创 cpp编写的tcp服务端,提供cpp和Python两个语言版本的tcp客户端,C++部分基于boost.asio网络库
+ client-server的架构程序;+ 支持多tcp客户端连接tcp服务端,支持断链重连;+ cpp编写的tcp服务,提供两个语言版本的tcp客户端,cpp和python+ C++tcp服务端和客户端使用C++11开发,依赖boost.asio库,模块充分解耦;...
2022-06-30 08:13:12 592 1
原创 C++编写的局域网tcp license认证服务
C++编写的局域网tcp license认证服务,一个tcp服务多个tcp客户端,支持多语言Python和lua(适应cffi调用)
2022-06-30 08:12:22 729
原创 C++使用ffmpeg解码v模块,支持cpu解码、amd64平台的cuda解码和NX平台的Nvmpi解码
C++ 使用ffmpeg解码video模块,支持3种解码:cpu解码、amd64平台的cuda解码和NX平台的Nvmpi解码
2022-06-29 16:11:19 1628
原创 C++和Python 使用zmq的push和pull将任务下发给多个worker进程
C++和Python 使用zmq的push和pull将任务下发给多个worker进程
2022-06-29 09:57:41 933
原创 Python程序使用psutil采集设备信息,通过共享内存发送至C++程序
Python程序使用psutil采集设备信息,通过共享内存发送至C++程序
2022-06-29 09:42:04 334
原创 使用C++11实现的非阻塞消息总线message_bus
+ 该模块一般用在客户端;+ 基于消息的程序架构(如C/S架构),在发送一个request消息后可能会遇到这样的情况: + 等到response消息,其中response分为肯定回答和否定回答; + 在超时时间内没有收到回复。..................
2022-06-29 09:33:21 780
原创 C语言可变参数和三个点解释
采用C语言编程的时候,函数中形式参数的数目通常是确定的,在调用时要依次给出与形式参数对应的所有实际参数。但在某些情况下希望函数的参数个数可以根据需要确定。典型的例子有大家熟悉的函数printf()、scanf()和系统调用execl()等。那么它们是怎样实现的呢?C编译器通常提供了一系列处理这种情况的宏,以屏蔽不同的硬件平台造成的差异,增加程序的可移植性。这些宏包括va_start、va_arg和va_end等。
2024-02-09 02:03:14 355
原创 日志打印传值 传引用 右值引用性能测试
编译: g++ -o test test.cpp -std=c++11 -O2。ubuntu x86平台qnx平台优化传值都是比传引用的差。
2023-12-08 15:25:58 90
原创 QNX的nicinfo ifmcstat if_up和tcpdump
在QNX操作系统中,nicinfo是一个用于显示网络接口卡(NIC)信息的命令行工具。它可以提供有关系统中所有可用网络接口卡的详细信息,例如接口名称、MAC地址、IP地址、掩码、广播地址、传输单元大小等等。通过nicinfo命令可以查看所有网络接口卡的信息,也可以通过添加接口名称参数来查看特定接口的信息。nicinfo命令对于调试和排除与网络有关的问题非常有用,也可以用于监视和管理系统中的网络接口卡。
2023-12-03 14:56:36 338
原创 QNX下mmap
MAP_NOCACHE标志告诉内核不要将映射的内存页缓存到文件系统缓存中,而是直接将内存与文件关联。这对于需要频繁读写大量数据的应用程序是有益的,因为它避免了在读写数据时额外的缓存开销。在Linux系统中,使用mmap映射文件到内存时可以指定不使用缓存。这可以通过在调用mmap时将MAP_NOCACHE标志传递给mmap函数来实现。
2023-12-03 14:23:47 89
原创 SSE4.2 指令集内置函数来加速32位循环冗余校验(CRC-32)计算
_mm_crc32_u8 指令使用了 SIMD 技术(即单指令多数据流技术),可以同时处理多个字节的数据。这些字节被打包成 64 位整数,然后使用单条 _mm_crc32_u64 指令计算它们的 CRC-32 校验和。这种方式比查表法更快,因为它可以利用 CPU 的并行性,同时处理多个字节,从而减少了指令的数量。
2023-12-03 14:09:52 396
原创 vscode配置使用 cpplint
安装clang-format和cpplintsudo apt-get install clang-formatsudo pip3 install cpplint
2023-12-03 13:58:37 422
原创 解决vscode C++代码查找所有引用“Find all reference“慢的问题
使用vscode编写C++代码右键"Find all reference"时,发现响应特别慢,而且很不准确。一个解决方法是使用global组件待的gtags。
2023-03-08 13:01:31 2867
转载 git merge的三种操作merge, squash merge, 和rebase merge
git merge的三种操作merge, squash merge, 和rebase merge的使用区别
2023-02-17 20:18:03 732
原创 mingw64和msvc编译脚本
+ 提供windows下mingw64和msvc编译器的一键编译脚本,+ 其中msvc编译器是免费的ms_buildtools,下载路径:https://aka.ms/vs/17/release/vs_buildtools.exe+ mingw64环境的下载路径:https://www.msys2.org/docs/environments/
2023-01-10 18:58:42 411
原创 读取tcp/udp默认缓冲区大小
tcp和udpsocket缓冲区大小查看方法。tcp发送缓冲区默认是16k,tcp接受缓冲区默认是8k;udp发送缓冲区默认都是是208k。
2022-10-11 16:46:11 3281
Visual_C++_6.0环境配置
2011-06-29
2440test 2440示例代码
2010-11-27
linux示例代码 example
2010-11-27
vs插件 适用于VC6.0 vs2005 vs2008(Visual.Assist)及破解包
2010-08-09
cpp_master_worker依赖第三方库地址
2022-07-21
cmake example with Support of Qt5
2022-07-17
EFFECTIVE MINIDUMPS
2013-11-15
Effective Exception Handling in Visual C++
2013-11-15
About Exceptions and Exception Handling
2013-11-15
A Crash Course on the Depths of Win32 Structured Exception Handling
2013-11-15
C# XML demo,C# XML入门,XmlHelper
2013-06-20
C#基础概念二十五问
2013-06-11
一小时入门C#(中英文)
2013-06-08
费用管理系统 vc + access
2012-06-15
利用剪贴板实现Exe程序间的数据交换
2011-09-08
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人