上一页 1 ··· 3 4 5 6 7 8 9 10 11 ··· 25 下一页
摘要: 目录简介源码解析基础类日志库网络库 简介 muduo库是陈硕开发的Linux多线程事件库,适用于Linux服务器编程。 Github地址:https://github.com/chenshuo/muduo 文档介绍:https://book.douban.com/subject/20471211/ 阅读全文
posted @ 2023-05-18 20:54 明明1109 阅读(1803) 评论(0) 推荐(0)
摘要: 目录意义问题用命令模式解决电机控制与输入信号耦合问题与标准命令模式的区别异同 意义 先说结论:命令模式能有效对代码模块进行解耦,增强模块的扩展性以及可移植性。 问题 为了方便说明问题,假设现在有一个电机Motor,在识别到外界信号后,通过软件控制其旋转。需要支持的旋转方式为3种:正转、反转、振动。 阅读全文
posted @ 2023-05-12 18:02 明明1109 阅读(185) 评论(0) 推荐(0)
摘要: 目录库介绍项目构建源码解析 库介绍 spdlog库笔记 (一):简介 spdlog库笔记 (二):编译、安装 项目构建 spdlog日志库源码:CMake构建项目 源码解析 spdlog日志库源码:线程池thread_pool spdlog日志库源码:异常类spdlog_ex spdlog日志库源码 阅读全文
posted @ 2023-05-10 19:19 明明1109 阅读(4598) 评论(2) 推荐(2)
摘要: 目录总览指示(Directives)实现编译和构建需求可追踪性代码设计规则(Rules)标准C环境未使用代码(Unused code)注释(Comments)字符集和词汇约定(Character sets and lexical conventions)标识符(Identifiers)类型(type 阅读全文
posted @ 2023-05-08 18:00 明明1109 阅读(13496) 评论(1) 推荐(3)
摘要: 需求 Linux程序中,常有这样的需求:判断当前程序是否为root权限启动。如果是,正常运行;如果不是,则打印日志,退出程序。 root用户特点 要判断是否为root权限启动,可以先看看root用户特点。root用户典型特点:UID(用户id)为0,GID(组id)为0。 每个用户有对应唯一UID值 阅读全文
posted @ 2023-03-30 09:24 明明1109 阅读(1376) 评论(0) 推荐(0)
摘要: 引出问题 在基于消息包的通信协议中,通常会通过一个id或命令名来标识该消息包,程序需要根据不同的标识进行不同的解析策略,提取出想要的内容。例如,一个典型的FTP请求命令是这样的: USER anonymous\r\n 其中,"USER"是请求命令名,"anonymous"是该命令跟着的参数,"\r\ 阅读全文
posted @ 2023-03-29 21:11 明明1109 阅读(310) 评论(0) 推荐(0)
摘要: 字面量 字面量是指源码中,固定的常量。比如, const char* p = "abcd"; const std::string s = "efg"; const int v = 10; const double d = 20.1; const unsigned long l = 123465789 阅读全文
posted @ 2023-03-25 17:25 明明1109 阅读(623) 评论(0) 推荐(0)
摘要: 内存池意义 内存的分配与释放会向系统进行申请,陷入内核,而频繁的内存分配、释放会降低应用程序性能。应用程序通常以特定方式使用内存,因此,能通过开发专门的内存管理器来解决这种情况。内存管理器,通常也称为内存池。 内存管理器需要考虑两方面:大小、并发。 大小 1)固定大小:分配单一固定大小内存块对内存管 阅读全文
posted @ 2023-03-23 19:51 明明1109 阅读(703) 评论(0) 推荐(1)
摘要: 获取磁盘信息方式 Linux中,可以在终端用df -h,fdisk -l等命令,查看磁盘信息,但C/C++程序中,如何查看呢? 可以使用statvfs, fstatvfs调用。 statvfs, fstatvfs 函数说明 有2个接口能获取磁盘信息方式,statvfs需要传入一个C风格Posix路径 阅读全文
posted @ 2023-03-13 19:43 明明1109 阅读(5006) 评论(0) 推荐(0)
摘要: 临时对象对开发人员来说,可能是个意外情况,因为是编译器偷偷产生的,并不在源码中出现。由于临时对象可能影响程序性能,本文主要探讨这种额外产生的临时对象。 产生临时对象 假设有理数类Rational: // 有理数 class Rational { friend Rational operator+(c 阅读全文
posted @ 2023-02-25 16:25 明明1109 阅读(191) 评论(0) 推荐(0)
摘要: 返回值优化(Return Value Optimization, 简称RVO)是通过对源代码进行转换、消除对象的创建来实现加速程序,提升程序性能的优化措施,通常是由编译器实现的优化。 按值返回 假设我们打算实现Complex类,用于实现复数。可以这样设计Complex类: class Complex 阅读全文
posted @ 2023-01-08 23:39 明明1109 阅读(868) 评论(0) 推荐(0)
摘要: 线程池技术 对于大量并发任务,传统方式处理任务特点: 一个请求一个线程来处理请求任务,大量线程的创建和销毁将消耗过多的系统资源,增加线程上下文切换的开销。 线程池技术特点: 在系统中预先创建一定数量的线程,当任务请求到来时,从线程池中分配一个预先创建的线程去处理任务,线程处理完任务后还可以重用,不会 阅读全文
posted @ 2023-01-06 15:36 明明1109 阅读(338) 评论(0) 推荐(0)
摘要: 目录17.3 正则表达式组件语法基本匹配字符类重复量词位置锚点分组和捕获选择分支特殊构造原始字符串字面量(R"")17.3.1 使用正则表达式一个简单例子regex选项正则表达式类和输入序列类型17.3.2 匹配与Regex迭代器类型17.3.3 使用子表达式17.3.4 使用regex_repla 阅读全文
posted @ 2022-12-09 23:31 明明1109 阅读(730) 评论(0) 推荐(0)
摘要: 目录registry类意义registry类实现registry数据成员registry函数成员构造与析构单例模式全局注册表initialize_logger初始化logger对象全局格式器预置日志等级flush日志等级默认logger在已注册logger上应用函数回溯最近的log消息线程安全错误处 阅读全文
posted @ 2022-11-27 20:47 明明1109 阅读(1423) 评论(0) 推荐(1)
摘要: 目录相关概念formatter类描述formatter系列类类图关系formatter类pattern_formatter类构造与析构compile_pattern_编译patternhandle_padspec_按pad规格处理handle_flag_ 处理模式标志字符format()格式化log 阅读全文
posted @ 2022-11-19 21:18 明明1109 阅读(2171) 评论(0) 推荐(1)
摘要: 目录sinks系列类简介特点sinks继承体系sink类sink类声明日志等级阈值sink子类null_sink类模板base_sink类模板basic_file_sink类模板文件工具类file_helperdaily_file_sink类模板dist_sink类模板dup_filter_sink 阅读全文
posted @ 2022-11-08 19:21 明明1109 阅读(3594) 评论(0) 推荐(1)
摘要: 目录特性类图关系logger数据成员logger函数成员构造与析构构造函数拷贝构造、移动构造交换操作log()记录日志消息格式串普通字符串日志级别宽字符支持sink_it_:将log消息交给sink对象写日志控制线程安全backtracer类错误处理logger类应用创建logger对象同步工厂方法 阅读全文
posted @ 2022-10-30 01:17 明明1109 阅读(3214) 评论(4) 推荐(2)
摘要: 目录自定义异常类spdlog_ex通用异常系统调用异常what()函数异常的使用抛出异常控制异常使用 自定义异常类spdlog_ex 标准库异常类(std::exception)系列,能满足大多数使用异常的场景,但对系统调用异常及错误信息缺乏支持。spdlog通过继承std::exception,扩 阅读全文
posted @ 2022-10-27 11:21 明明1109 阅读(1404) 评论(0) 推荐(2)
摘要: 目录线程池thread_pool简介多生产者-多消费者阻塞队列模型阻塞与非阻塞方式插入数据取出数据overrun异常处理机制其他接口环形队列circular_qthread pool模型thread pool实现thread_pool类接口构造与析构构造函数析构函数post_log插入log消息po 阅读全文
posted @ 2022-10-27 01:30 明明1109 阅读(4446) 评论(5) 推荐(3)
摘要: 目录安装编译、运行平台编译、安装直接拷贝include文件到用户的项目Windows下编译使用spdlogWindows下使用spdlog参考 安装 编译、运行平台 Linux,FreeBSD,OpenBSD,Solaris,AIX Windows(MSVC 2013+,cygwin) MacOS( 阅读全文
posted @ 2022-10-15 22:54 明明1109 阅读(5092) 评论(0) 推荐(0)
上一页 1 ··· 3 4 5 6 7 8 9 10 11 ··· 25 下一页