摘要:
Spdlog是一个快速且可扩展的C++日志库,它支持多线程和异步日志记录。在本文中,我们将分析Spdlog日志库的核心代码,探究其实现原理和代码结构。 Spdlog的基本架构 上一篇文章介绍了spdlog的五个主要组件,其中最重要是Logger、Sink和Formatter其中,Logger负责日志 阅读全文
摘要:
什么是 Spdlog 日志库 Spdlog 是一个 C++ 的日志库,它具有高效、易用、跨平台等特点。它可以写入到控制台、文件等输出目标,支持多种日志级别、多线程安全等功能,非常适合在 C++ 项目中使用。 Spdlog 日志库的历史和背景 Spdlog 日志库最初由 Gabi Melman 开发, 阅读全文
摘要:
Spdlog 是一个快速、异步的 C++ 日志库,被广泛应用于 C++ 项目中。在这篇文章中,我们将探讨 Spdlog 日志库的实现原理。 Spdlog 的结构 Spdlog 由五个主要组件构成:Loggers、Sinks、Formatters、Async Logger 和 Registry。每个组 阅读全文
摘要:
内存重叠是指在内存中存在两个或多个区域,它们的地址范围有交叉部分。在 C++ 中,内存重叠可能会导致程序出现不可预期的行为,因此我们需要了解它的原因和如何避免。 内存重叠的原因 内存重叠的主要原因是指针的使用。当我们使用指针访问内存时,如果指针指向的内存区域与另一个区域有交叉部分,就会产生内存重叠。 阅读全文
摘要:
在使用zeromq 退出的时候还遇到一点坑,对于服务deaman(守护进程)化的进程可能会遇到这个问题。 现象: 这个问题导致的现象是服务一旦关闭(stop),就会 core dump,core dump 的信息如下。意思大概是使用了无效的描述符。 (gdb) bt #0 0x00007f522e2 阅读全文
摘要:
关于message 消息分片 消息分片的发送 消息分片允许将多个消息封装成一条消息。在发送自定义协议数据时,我们经常需要在消息前“填充”一个包头。如下代码,在发送的时候加上 zmq::send_flags::sndmore 标识(对应 zeromq ZMQ_SNDMORE),表示后面还有消息。这样 阅读全文
摘要:
很多时候,在linux我们源码编译库代码时候会自定义安装路径,这使得man查询的时候无法找到库文档,默认的man搜索路径可以使用下面命令查看: $ man -w /usr/local/share/man:/usr/share/man 我们可以通过修改man的命令搜索配置文件/etc/man_db.c 阅读全文
摘要:
在团队协作中,Git 提交规范对于代码的可维护性和版本管理非常重要。下面总结了一些常见的提交规范: 提交信息格式 每个 Git 提交信息都应该包含一个清晰简洁的标题和一个更详细的描述。推荐的提交信息格式如下: <type>(<scope>): <subject> <BLANK LINE> <body 阅读全文
摘要:
本文档参考了Git提交规范,旨在规范使用SVN进行代码版本管理时的提交操作。 提交前的准备 1. 检查代码 在提交代码前,请先进行必要的代码检查,确保代码的正确性、可读性和可维护性。可以使用代码质量管理工具进行自动化检查,也可以手动检查。 2. 编写提交信息 在提交代码时,需要编写提交信息来描述本次 阅读全文
摘要:
在网络编程中,处理网络连接、连接收发数据等经常会涉及到errno的处理。经过查阅了很多资料,发现没有一个系统的讲解,在不同阶段会遇到哪些errno,以及对这些errno需要如何处理。因此,本文将分为三个部分来讲解。 阅读全文