
C/C++
文章平均质量分 87
C/C++
lianghu666
聚焦HKKK|1%, everyday.
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
静态库和动态库的简单使用
根据场景选择合适类型,并善用版本管理和调试工具确保兼容性。在运行时动态加载库,无需编译时链接。原创 2025-08-21 11:37:16 · 167 阅读 · 0 评论 -
C++反射机制入门
全局映射表存储类名与构造函数,通过字符串实例化对象。:模板特化+constexpr在编译时生成类型元数据。:对象序列化、动态属性查看器。:基类维护成员指针映射表。:插件系统、动态加载类。:序列化框架、代码生成。原创 2025-07-18 09:08:52 · 430 阅读 · 0 评论 -
Screen 命令和系统日志
screenscreen -lsCtrl+A → DCtrl+A → CCtrl+A → 1Ctrl+A → [EscexitCtrl+DCtrl+A → Hlsjournalctllogrotategrep/awkCtrl+A Dscreen -rscreen -lslogrotaterotate 7以上表格整合自多篇权威资料,覆盖日常运维的场景。若需更深入内容(如.screenrc。原创 2025-07-15 08:07:28 · 902 阅读 · 0 评论 -
【C语言】指定初始化器(Designated Initializer)
指定初始化器(Designated Initializer)是C99标准引入的重要特性,它允许开发者显式指定结构体成员或数组元素的初始化值,而无需遵循固定顺序。以下从语法规则、应用场景、优缺点及实例进行详细解析。原创 2025-07-03 23:42:54 · 675 阅读 · 0 评论 -
YUV420格式详解
以下从原理到实现逐步详解YUV420格式,结合Mermaid图表与C++代码,为音视频开发者提供系统指南。UV分量2x2降采样。原创 2025-06-30 23:29:38 · 1223 阅读 · 0 评论 -
YUV422格式详解
宽/2 x 高的U值。宽/2 x 高的V值。原创 2025-06-30 23:25:40 · 785 阅读 · 0 评论 -
订阅-发布模式的原理_简单场景
fill:#333;color:#333;color:#333;fill:none;注册注册状态变化接收通知接收通知主题观察者1观察者2通知所有观察者更新操作。原创 2025-06-25 08:45:17 · 927 阅读 · 0 评论 -
嵌入式音视频开发重难点概述
嵌入式音视频开发如同“戴着镣铐跳舞”,需在资源枷锁中寻求极致性能。掌握上述架构后,可逐步攻克各层难点,最终实现稳定高效的嵌入式音视频系统。:8K编码(H.266/VVC)、端侧AI(YOLOv5s模型量化部署)、低功耗设计(≤1W待机功耗)是未来突破重点。原创 2025-06-24 08:58:32 · 1087 阅读 · 0 评论 -
GTest + GMock 集成方案
【代码】GTest + GMock 集成方案。原创 2025-06-21 22:51:16 · 437 阅读 · 0 评论 -
BusyBox系统管理与进程控制命令
涵盖六大类别,结合命令全名、功能说明及实践示例(基于BusyBox v1.36)。原创 2025-06-13 20:29:56 · 899 阅读 · 0 评论 -
`aarch64-mix210-linux-strip` 命令详解
专用于移除针对 ARMv8-A 架构(AArch64)编译的可执行文件、共享库或目标文件中的符号表和调试信息。接口)未被移除,否则导致加载失败。此方法兼顾发布体积与调试需求。避免因误删符号导致无法调试。后,需确保导出符号(如。检查关键符号是否存在。原创 2025-06-12 23:14:29 · 522 阅读 · 0 评论 -
dmesg 命令的完整指南
是 Linux 系统调试的。原创 2025-06-12 22:42:10 · 794 阅读 · 0 评论 -
使得编译生成的包体积尽可能的小
生成 Release 配置并加最小化参数编译(可选)strip 进一步瘦身这样生成的二进制文件会极小且没有调试信息,适合嵌入式、发布环境等空间敏感场景。原创 2025-06-12 19:17:10 · 304 阅读 · 0 评论 -
Linux系统中查看文件大小的常用命令
du -h filename # 人类可读格式(显示占用的磁盘块大小)ls -lh filename # 人类可读格式(KB/MB/GB)特点:同时展示实际大小(Size)和磁盘占用(Blocks),适合深度分析。du -h 磁盘占用空间 分析存储占用(如小文件优化) 反映真实磁盘消耗。分析磁盘占用 → 用 du -h filename(优化存储时必备)。显示文件占用的磁盘块空间(而非纯内容大小),因文件系统块大小而异。小文件(如 1 字节)可能显示为 4K(默认块大小为 4KB)。原创 2025-06-12 18:52:30 · 845 阅读 · 0 评论 -
Linux系统编译程序文件
文件类型扩展名内容作用生成命令示例源代码文件.c.cpp原始程序代码编译起点手动编写预处理文件.i展开头文件/宏后的代码消除预处理指令汇编文件.s汇编指令生成机器码基础目标文件.oELF格式机器码 + 符号表链接的输入单元可执行文件无完整ELF文件 + 启动代码直接运行静态库.a多个.o的归档编译时嵌入动态库.so位置无关代码 + 符号表运行时加载核心转储文件core程序崩溃时的内存状态调试崩溃原因程序崩溃时自动生成Map文件.map内存地址分配详情优化内存布局。原创 2025-06-12 08:51:05 · 795 阅读 · 0 评论 -
lseek 函数
⚠️ 注意:需确保文件支持定位(如普通文件支持,管道/TTY设备不支持)。(即读写指针位置)。通过它可实现文件的随机访问(非顺序读写)。是 Linux 系统调用,用于修改文件描述符(fd)关联的。),适用于高效处理大文件(如视频预分配空间)。为距文件开头的字节数;需用互斥锁避免竞争。原创 2025-06-01 21:36:31 · 438 阅读 · 0 评论 -
Docker学习记录复习
Docker学习记录复习原创 2025-05-28 22:36:50 · 661 阅读 · 0 评论 -
gRPC的使用
gRPC使用复习原创 2025-05-28 21:36:19 · 1060 阅读 · 0 评论 -
C++缓存机制
优先使用智能指针:避免内存泄漏(如数据布局与局部性:优化结构体和循环访问模式。多线程环境优化:避免伪共享,使用原子或无锁结构。工具辅助:Valgrind检测缓存问题。原创 2025-05-28 17:48:15 · 1115 阅读 · 0 评论 -
C++内存管理简解
优先使用智能指针:避免手动new/delete。遵循RAII原则:资源管理类封装(文件句柄、网络连接等)。性能敏感场景优化:内存池、对齐、缓存友好设计。工具辅助验证:Valgrind、ASan确保代码健壮性。原创 2025-05-28 17:37:02 · 894 阅读 · 0 评论 -
在Ubuntu 系统上使用sysstat
使用 Protocol Buffers 定义服务接口(.proto。原创 2025-05-28 17:28:03 · 677 阅读 · 0 评论 -
RPC框架
使用 Protocol Buffers 定义服务接口(.proto。原创 2025-05-28 17:23:38 · 625 阅读 · 0 评论 -
布鲁过滤器
通过这种分层的实现方式,可以更好地理解布鲁过滤器的核心机制,并根据实际需求选择标准版或计数版实现。关键是要根据具体应用场景合理选择位数组大小和哈希函数数量,在空间效率与误判率之间取得平衡。原创 2025-05-28 13:36:10 · 1306 阅读 · 0 评论 -
合并两个已排序的数组_记录
其核心思路是从两个数组的有效数据尾部开始比较,将较大者放入第一个数组的末端空间,避免覆盖未处理的元素。合并两个已排序的数组, 第一个数组的有效数据长度为m,第二个数组的有效数据长度为n,已知第一个数组中空间足够。原创 2025-05-28 13:34:32 · 274 阅读 · 0 评论 -
自定义实现`memcpy` 函数
核心特性与实现要点1. 内存重叠处理机制检测条件:当源地址低于目标地址且源地址范围覆盖目标地址时(),需反向拷贝反向拷贝示例若源地址 在 的前方且存在重叠区域,从前向后拷贝会覆盖未处理的源数据。例如:,,拷贝3个元素正向拷贝结果:(错误)反向拷贝结果:(正确)2. 基础实现逻辑类型转换:将 转换为 实现逐字节操作空指针检查:确保输入指针的有效性3. 性能优化直接内存操作:避免了 C++ 对象构造/析构的开销,适用于 POD 类型时间复杂度:严格 O(n原创 2025-05-28 12:32:11 · 623 阅读 · 0 评论 -
混合云网络架构分步详解
跨国运输时,记得给包裹买“保险”(加密协议),否则半路被劫镖(数据泄露)就完蛋了!先破解加密箱,再冒充CEO通过安检,最后绕过防火墙…“以前养100台服务器天天吃灰,现在用多少租多少,省下的钱够买十辆玛莎拉蒂!促销结束立马解散,老板真会省钱!“再也不用对着不同仓库改配置了!一个集装箱搞定所有!两者的配合需要一套智能物流网络!混合云就像一家快递公司,总部设在自家建的。快递车走什么路,决定了包裹能否准时送达!(私有云),同时在各大城市租用。把货物标准化,全球通行无阻!总部物流中心-私有云。原创 2025-05-27 18:54:46 · 879 阅读 · 0 评论 -
Linux TCP/IP协议栈原理与调优排障
比如把默认接收窗口从几KB调到几MB,让数据包像货车一样多装货(增大吞吐量)。:下次网络卡顿,可以中二地喊一句——“TCP滑动窗口,开!原创 2025-05-27 18:51:15 · 875 阅读 · 0 评论 -
Linux定时任务命令
替代传统cron,支持更精确的时间控制和依赖管理,适用于复杂任务。:用于设置周期性执行的计划任务,适用于每日、每周等规律性任务。:执行单次任务,适合临时性需求(如几小时后重启服务)。原创 2025-05-27 18:39:00 · 479 阅读 · 0 评论 -
Linux TCP/IP协议栈原理的通俗理解
通过这种分层协作机制,Linux TCP/IP协议栈实现了高效、可靠的网络通信。如需深入技术细节(如内核源码分析),可参考相关文档。原创 2025-05-27 18:36:20 · 281 阅读 · 0 评论 -
败者树分步详解与C++实现
败者树通过减少冗余比较次数(仅需比较路径节点而非兄弟节点),成为多路归并排序的核心优化手段。其C++实现需注意叶子节点的动态更新和内部节点的索引维护。上图直观展示了树结构的动态调整过程,帮助理解其核心机制。原创 2025-05-26 10:46:49 · 669 阅读 · 0 评论 -
胜者树分步详解与C++实现
胜者树通过树形结构减少比较次数,适合需要频繁查询极值的场景(如多路归并排序)。结合图可直观展示其动态调整过程。C++实现中需注意数组索引与完全二叉树结构的对应关系。原创 2025-05-26 10:42:35 · 728 阅读 · 0 评论 -
C++ 协程(Coroutine)使用详解
C++ 协程(Coroutine)使用复习原创 2025-05-19 19:46:17 · 1273 阅读 · 0 评论 -
C++ 实现 MySQL 连接池
C++ 实现 MySQL 连接池 复习原创 2025-05-19 19:30:28 · 938 阅读 · 0 评论 -
C++ 实现内存池
C++ 实现内存池原创 2025-05-19 19:17:15 · 687 阅读 · 0 评论 -
C++实现红黑树
红黑树复习原创 2025-05-19 19:04:52 · 977 阅读 · 0 评论 -
异步编程中std::async的使用
异步编程中std::sync的使用复习原创 2025-05-19 18:07:11 · 656 阅读 · 0 评论 -
使用C++一步一步实现线程池
线程池是一种多线程编程模式,在程序启动时创建一组线程,并将其放入一个“池”中。任务被提交到线程池后,空闲线程会从任务队列中取出任务并执行。这样可以避免频繁创建和销毁线程的开销,提高性能。运行这段代码,你会看到 8 个任务被 4 个线程并发执行,每个任务休眠 1 秒后完成。下面是完整的线程池实现代码,包含所有必要的组件。我们将使用模板支持各种任务类型(如函数、lambda 表达式等)。线程池类将包含任务队列和工作线程,并提供任务提交接口。任务队列需要支持多线程访问,因此我们使用。下面,我将通过改进以上的。原创 2025-05-19 16:52:03 · 539 阅读 · 0 评论 -
C语言协程开源库libaco的使用
协程原创 2025-05-19 15:14:07 · 361 阅读 · 0 评论 -
段错误(Segmentation Fault)总结
段错误(Segmentation Fault)总结原创 2025-05-12 17:27:41 · 436 阅读 · 0 评论 -
C/C++多线程编程:POSIX线程库
C/C++多线程编程:POSIX线程库 复习原创 2025-05-10 10:01:37 · 370 阅读 · 0 评论