- 博客(54)
- 收藏
- 关注
原创 C++17 std::variant 详解
是 C++17 中一个强大的特性,它提供了类型安全的联合体功能。通过合理使用避免使用不安全的union创建更加类型安全的代码简化错误处理逻辑提高代码的可读性和可维护性。
2025-07-12 15:11:18
900
原创 C++17 中 std::optional 使用详解
是 C++17 中引入的一个模板类,用于表示一个可能包含值,也可能为空的对象。它提供了一种更安全、更清晰的方式来表示“可选值”,替代传统的空指针、特殊标记、布尔状态等方案。
2025-07-09 16:56:25
403
原创 C++17 std::filesystem:的核心功能、常用接口及用法。
函数说明判断路径是否存在判断是否为普通文件判断是否为目录创建目录删除文件或空目录删除目录及其所有子内容获取文件大小(字节)复制文件或目录重命名文件或目录获取当前工作目录获取绝对路径获取规范路径(去除符号链接等)以现代 C++ 的风格,将复杂的文件系统操作封装得简洁优雅,不但跨平台,还极大提升了代码的安全性和可读性。无论是处理路径字符串,还是操作文件、目录,都能轻松驾驭。建议所有需要文件操作的 C++ 项目尽早采用,摒弃手工拼接路径和平台依赖代码,让你的项目更加健壮和易维护。
2025-07-05 09:05:09
410
原创 使用 GDB 调试多线程程序
info threads # 查看所有线程thread <id> # 切换线程bt # 当前线程栈回溯thread apply all bt # 所有线程的栈。
2025-07-02 11:23:47
441
原创 使用 GDB 调试分离调试信息的可执行程序(.debug 文件)
源文件路径变量/函数名称行号、作用域、类型信息(DWARF 格式)这些信息会让编译后的二进制文件变大,但也使得你能在 GDB 中看到完整的调试细节。节省线上资源保留本地调试能力避免源码信息泄露gdb ./app。
2025-07-02 11:15:29
498
原创 GDB 中使用 `step` 会进入系统调用、标准库或第三方库函数吗?
摘要: GDB的step命令能否进入库函数或系统调用取决于调试信息。带调试符号的库函数可以进入(如安装libstdc++-dbg),无符号库会跳过(表现为执行但无源码级调试)。系统调用因涉及内核态切换无法进入。控制方法: 用next跳过函数 skip命令过滤特定函数/文件 set step-mode on限制当前文件 调试系统调用需用strace或内核调试工具。建议编译时加-g保留调试符号,必要时安装库的调试包。
2025-07-02 11:12:41
435
原创 libevent 中 bufferevent 相关的常用函数
在libevent中,是用来简化和优化异步 I/O 操作的结构体,提供了对网络套接字进行高效的读写操作。提供了多种函数,方便开发者处理数据流、事件和缓冲区管理。以下是相关的常用函数。
2025-02-17 19:54:45
604
原创 Redis-五种数据结构之列表(ziplist、quicklist)
Redis 五种数据结构之列表主要介绍ziplist和quicklist列表
2024-06-19 21:24:05
1208
原创 c++11 中的std::promise 与 std::future以及std::packaged_task的用法
c++11 中的std::promise 与 std::future以及std::packaged_task的用法
2023-12-04 22:59:53
1125
原创 求1+2+…+n, 要求不能使用乘除法、for、while、if、else、switch、case等关键字以及条件判断语句(A?B:C)
求1+2+…+n, 要求不能使用乘除法、for、while、if、else、switch、case等关键字以及条件判断语句(A?B:C)四种方法
2023-07-29 01:16:23
364
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅
2