C/C++开发,无可避免系列专栏总述

成体系的C/C++开发进阶专栏

目录

一、成体系性c/c++开发进阶专栏

        1.1 专栏特点

        1.2 涉及技术点概要

二、主题技术点及博文索引

        2.1 函数主题(5篇)

        2.2 类主题(8篇)

        2.3 内存管理(5篇)

        2.4 模板编程(10篇)

        2.5 操作符(4篇)

        2.6 字符串及输入输出IO(6篇)

        2.7 多线程及协程(6篇)

        2.8 宏、断言(2篇)

三、实践案例及博文索引

        3.1 通信设计(8篇)

        3.2 资源监测(6篇)

        3.3 服务接口(10篇)

        3.4 日志系统(3篇)

        3.5 工程服务(9篇)


        c/c++开发进阶及实战案例专栏按本人原来撰写设想,已经接近尾声了,现在将整个专栏整理出来,为各篇章博文进行归属整纳,并建立索引,方便各位粉丝读友阅读跳转,期望大家阅读了本人撰写该专栏博文后能有一丝收获。

一、成体系性c/c++开发进阶专栏

        本人是CSDN博文的受益者,尤其是在刚开始工作的时候。那时能在上面写技术博客的往往都是工作经年,具有很多项目实践经验的技术大佬,博文相对也少,但技术点很聚焦,不用烦心要读那些博文。而目前在CSDN上,很多时候都是被这碎片化的知识博客载体所淹没,很多技术博文都是学生的学习日志,现在的我更多时候是将其作为问题解答器来使用。

        知识碎片化会使得大家获取的知识越来越零散,不再是深入系统的学习,而是片断化地学习,且碎片之间缺乏相互关联和系统性。随着互联网“快餐知识”成为大家知识灌输的首要接触面,逐渐片面追求知识的广度而失去对知识深度的追求,可能造成对知识的不全面理解,犹如“皮毛知识”的学习。同时,碎片化的知识学习会使人产生一种信息过载和焦虑感。

        因此在自己写博客时,希望能给读到本人博客的读友一个完整知识面、经论证可行、附带编译环境要求、工程配置及全源码的技术博文,希望大家在求证、爬资料、动手测试代码等少消耗一些时间、少绕一些弯路。

        1.1 专栏特点

        这是关于c/c++开发进阶的成体系的知识专栏,主要阐述在实际项目中使用的c/c++技术点,因此不会较少涉及排序等算法问题、面试问题,主要聚焦于大多c/c++开发中长用到的技术点。

        所谓成体系性,主要在两个方面:

        【1】本专栏会把c/c++项目开发涉及的一个个技术点作为主题,然后围绕一个个主题进行多方面论述,通常以该主题为主,并在其中穿插其关联的其他知识点。

        【2】这些主题博文会从知识点原理、描述、API、及运用上展开,并给出具体的编译环境、编译要求、可编译通过的全代码及演示结果。

        该专栏是c/c++开发进阶专栏,面向实际项目开发,因此不会在里面涉及到c/c++的语法讲解,也不会教大家应对面试、做题等,主要是描述一个个c/c++技术点,结合源代码案例,阐述这些技术点及涉及的函数、类、标准库,在项目中如何实际被调用、被运用及组合设计出新应用等为主。

        1.2 涉及技术点概要

        C/C++开发进阶专栏的会涉及一些主题与知识点:

  1. 函数设计:深入了解函数定义、函数参数、函数指针等知识要点,如何设计及优化函数执行效率。

  2. 类设计:如何设计类的基本成员函数,定义成员变量,研讨如何设计类的操作符、虚函数、继承体系等。

  3. 模板编程:泛型编程基本知识了解,研讨函数模板、类模板设计技巧,研讨泛型编程与标准库的密切关系及实现机理。

  4. 泛型编程与算法:学习泛型编程如何将常用的数据结构设计为标准容器,研究标准库中的顺序、关联等容器与排序、查找等算法结合,如何运用使程序设计更加高效和简单。

  5. 多线程和并发编程:使用多线程和并发编程可以提高程序的效率,需要了解线程同步、互斥、锁、协程、原子类型等相关概念。

  6. 内存管理和优化:需要注意内存泄漏、野指针等问题,了解C++的内存管理机制和内存优化方法,如STL的内存池技术等。

  7. 代码巧思:了解宏、断言、操作符、指针等对应代码优化的影响,代码如何从直白业务基本表象形态迭代调整到简短、优雅、高效的执行方式。

  8. 系统交互:了解系统操作的基本知识,如进程管理、内存管理、文件系统、IO操作、IT资源监测等。

  9. 使用第三方库和框架:使用常用的第三方库和框架,学习C/C++与第三方库、编译语言的交互,研讨服务API接口调用、网络通信等内容。

  10. 一切为项目服务:与业务相关不大,但系统必不可小的一些内容阐述,如何编译动、静态库,进行库管理调度,日志系统监测系统运维、计算资源监测等。

二、主题技术点及博文索引

        2.1 函数主题(5篇)

        【1】c/c++开发,无可避免的函数指针使用案例

c/c++开发,无可避免的函数指针使用案例_py_free-物联智能的博客-CSDN博客c/c++开发,无可避免的函数指针使用案例,描述函数指针一些常用知识点及使用技巧,通过源代码开发测试案例展示博文涉及的各个知识点https://blog.csdn.net/py8105/article/details/128985506        【2】c/c++开发,无可避免的函数参数实践

c/c++开发,无可避免的函数参数实践_py_free-物联智能的博客-CSDN博客c/c++开发,无可避免的函数参数实践,分析函数参数涉及的各个知识点及源码案例讲解https://blog.csdn.net/py8105/article/details/128996490        【3】C/C++,C++文件操作函数

C/C++,C++文件操作函数_py_free-物联智能的博客-CSDN博客C++文件操作函数,阐述C++操作文件的标准、非标准、stream流等访问、操作及管理文件函数。https://blog.csdn.net/py8105/article/details/127699775        【4】c/c++中有序容器、排序函数在应用用户自定义数据类型时比较函数设计

c/c++中有序容器、排序函数在应用用户自定义数据类型时比较函数设计_py_free-物联智能的博客-CSDN博客c/c++中有序容器、排序函数在应用用户自定义数据类型时比较函数设计https://blog.csdn.net/py8105/article/details/127086394         【5】C/C++开发,C++ lambda技术点应用

C/C++开发,C++ lambda技术点应用_c++ lambda作用_py_free-物联智能的博客-CSDN博客C++ lambda技术点应用,介绍lambda基本语法、应用示例、与仿函数、函数指针的比较及对STL的影响,在实际使用中需要注意的问题等。https://blog.csdn.net/py8105/article/details/127725528

        2.2 类主题(8篇)

        【1】c/c++开发,无可避免的自定义类类型(篇一).常用基本函数实现案例

c/c++开发,无可避免的自定义类类型(篇一).常用基本函数实现案例_c++函数例子_py_free-物联智能的博客-CSDN博客c/c++开发,无可避免的自定义类类型(篇一).常用基本函数实现案例,一个包含默认构造函数,普通构造函数,拷贝构造函数,析构函数,赋值函数基本成员函数的类似String类的类实现案例https://blog.csdn.net/py8105/article/details/128867307        【2】c/c++开发,无可避免的自定义类类型(篇二).类组合关系

c/c++开发,无可避免的自定义类类型(篇二).类组合关系_py_free-物联智能的博客-CSDN博客c/c++开发,无可避免的自定义类类型(篇二).类组合关系,阐述类的各种组合关系,前置声明、类类型成员变量、友元关系、继承及派生、嵌套类、局部类等类组合相关知识点,给出演示及演示代码。https://blog.csdn.net/py8105/article/details/129582001        【3】c/c++开发,无可避免的自定义类类型(篇三).类与虚函数

c/c++开发,无可避免的自定义类类型(篇三).类与虚函数_py_free-物联智能的博客-CSDN博客c/c++开发,无可避免的自定义类类型(篇三).类与虚函数,全面深入地阐述类与虚函数的种种运用,给出演示及演示代码。https://blog.csdn.net/py8105/article/details/129615179        【4】c/c++开发,无可避免的自定义类类型(篇四).类与成员设计

c/c++开发,无可避免的自定义类类型(篇四).类与成员设计_py_free-物联智能的博客-CSDN博客c/c++开发,无可避免的自定义类类型(篇四).类与成员设计,阐述类设计下的成员变量、后成员函数设计规划,类成员与各种特定关键词结合运用与特定业务场景,给出源码及演示。https://blog.csdn.net/py8105/article/details/129634949        【5】c/c++开发,无可避免的自定义类类型(篇五).using与类设计

c/c++开发,无可避免的自定义类类型(篇五).using与类设计_py_free-物联智能的博客-CSDN博客c/c++开发,无可避免的自定义类类型(篇五).using与类设计,全面阐述using在类设计中的巧思与陷阱,详细阐述各个知识点,给出演示及源代码。https://blog.csdn.net/py8105/article/details/129662021        【6】c/c++开发,无可避免的自定义类类型(篇六).特殊的类enum

c/c++开发,无可避免的自定义类类型(篇六).特殊的类enum_py_free-物联智能的博客-CSDN博客c/c++开发,无可避免的自定义类类型(篇六).特殊的类enum,介绍枚举的不同c++标准版本下的应用,介绍无作用域枚举、有作用域枚举(强类型枚举)的不同及优劣、以及使用情况,阐述using enum的运用。给出演示及源代码。https://blog.csdn.net/py8105/article/details/129676168       【7】 c/c++开发,无可避免的自定义类类型(篇七).碎银几两

c/c++开发,无可避免的自定义类类型(篇七).碎银几两_py_free-物联智能的博客-CSDN博客c/c++开发,无可避免的自定义类类型(篇七).碎银几两,介绍各个标准可版本出现的一些关键词对类设计的影响,阐述了noexcept、空类、no_unique_address、explicit、constexpr等方面的知识点,给与演示及源代码。https://blog.csdn.net/py8105/article/details/129685524        【8】c/c++开发,无可避免的自定义类类型(篇八).为类妥善处理异常

c/c++开发,无可避免的自定义类类型(篇八).为类妥善处理异常_py_free-物联智能的博客-CSDN博客c/c++开发,无可避免的自定义类类型(篇八).为类妥善处理异常,阐述异常、异常类、异常处理、异常与函数、类的设计,给出演示源码。https://blog.csdn.net/py8105/article/details/129738592

        2.3 内存管理(5篇)

        【1】C/C++开发,无可避免的内存管理(篇一)-内存那些事

C/C++开发,无可避免的内存管理(篇一)-内存那些事_py_free-物联智能的博客-CSDN博客C/C++开发,无可避免的内存管理(篇一)-内存那些事,介绍硬件内存、系统内存、程序内存的知识点,着重探讨应用程序内存涉及的静态区、栈、堆等变量问题,以及指针、数组作为函数局部变量引发的内存问题。https://blog.csdn.net/py8105/article/details/129180213        【2】C/C++开发,无可避免的内存管理(篇二)-约束好跳脱的内存

C/C++开发,无可避免的内存管理(篇二)-约束好跳脱的内存_py_free-物联智能的博客-CSDN博客C/C++开发,无可避免的内存管理(篇二)-约束好跳脱的内存,介绍c/c++开发对于内存管理使用的一些好习惯及注意事项,介绍了内存对齐,给出了各知识点的测试及源代码。https://blog.csdn.net/py8105/article/details/129197714

        【3】C/C++开发,无可避免的内存管理(篇三)-规划好内存

C/C++开发,无可避免的内存管理(篇三)-规划好内存_py_free-物联智能的博客-CSDN博客C/C++开发,无可避免的内存管理(篇三)-规划好内存,如何通过allocator 类模板、自定义operator new 和 operator delete ,union联合体,位域成员等技术点规划及优化内存,给出测试及源代码。https://blog.csdn.net/py8105/article/details/129210274

        【4】C/C++开发,无可避免的内存管理(篇四)-智能指针备选

C/C++开发,无可避免的内存管理(篇四)-智能指针备选_py_free-物联智能的博客-CSDN博客C/C++开发,无可避免的内存管理(篇三)-智能指针备选,介绍auto_ptr,unique_ptr、shared_ptr、weak_ptr智能指针以及智能指针赋值类owner_less、enable_shared_from_this、bad_weak_ptr、default_delete对智能指针的加持,以及智能指针应用选择。https://blog.csdn.net/py8105/article/details/129239616

        【5】C/C++开发,无可避免的内存管理(篇五)-c++与垃圾回收.水中捞月

C/C++开发,无可避免的内存管理(篇五)-c++与垃圾回收.水中捞月_c++ 垃圾回收_py_free-物联智能的博客-CSDN博客C/C++开发,无可避免的内存管理(篇五)-c++与垃圾回收,c++11支持最小垃圾回收到c++23又撤回,c++与垃圾回收还是可望不可求。https://blog.csdn.net/py8105/article/details/129248764

        2.4 模板编程(10篇)

       【1】 c/c++开发,无可避免的模板编程实践(篇一)-函数模板及类模板

c/c++开发,无可避免的模板编程实践(篇一)-函数模板及类模板_py_free-物联智能的博客-CSDN博客c/c++开发,无可避免的模板编程实践(篇一),介绍函数模板及类模板的知识点及开发要点,给出实践源代码测试效果https://blog.csdn.net/py8105/article/details/129007643        【2】c/c++开发,无可避免的模板编程实践(篇二)-模板编程要点

c/c++开发,无可避免的模板编程实践(篇二)-模板编程要点_py_free-物联智能的博客-CSDN博客c/c++开发,无可避免的模板编程实践(篇二),介绍模板编码会引入那些新问题,该如何把控,那些隐秘的问题点需要我们编码时注意提高警惕,如何更好设计模板,并通过测试案例来说明。https://blog.csdn.net/py8105/article/details/129040834        【3】c/c++开发,无可避免的模板编程实践(篇三)-模板与多态、指针及元编程

c/c++开发,无可避免的模板编程实践(篇三)-模板与多态、指针及元编程_py_free-物联智能的博客-CSDN博客c/c++开发,无可避免的模板编程实践(篇三),介绍模板的一些高级应用,如静多态,动多态,递归模板元编码,模板与指针设计等,给出源代码及运行测试。https://blog.csdn.net/py8105/article/details/129067623        【4】c/c++开发,无可避免的模板编程实践(篇四)-顺序容器及运用

c/c++开发,无可避免的模板编程实践(篇四)-顺序容器及运用_py_free-物联智能的博客-CSDN博客c/c++开发,无可避免的模板编程实践(篇四),介绍类模板与容器的实现关系,介绍顺序容器vector(数组)、list(链表)、deque(双端队列)以及容器迭代器,以及基于基准容器vector、list、deque的容器适配器stack(堆栈)、queue(队列)、priority queue(优先队列),辅以源码测试验证及给出测试源码。https://blog.csdn.net/py8105/article/details/129098688        【5】c/c++开发,无可避免的模板编程实践(篇五)-关联容器及运用

c/c++开发,无可避免的模板编程实践(篇五)-关联容器及运用_py_free-物联智能的博客-CSDN博客c/c++开发,无可避免的模板编程实践(篇五),介绍关联容器的各种操作、关联知识点,自定义类型作为模板参数的应用,及提供测试案例及测试源代码。https://blog.csdn.net/py8105/article/details/129108158        【6】c/c++开发,无可避免的模板编程实践(篇六)-泛型算法及运用

c/c++开发,无可避免的模板编程实践(篇六)-泛型算法及运用_py_free-物联智能的博客-CSDN博客c/c++开发,无可避免的模板编程实践(篇六),介绍标准库泛型算法与模板设计,阐述算法与容器模板、迭代器模板的设计管理,阐述标准库算法特点及算法分类概述,通过源码验证阐述内容,提供源代码。https://blog.csdn.net/py8105/article/details/129112619        【7】c/c++开发,无可避免的模板编程实践(篇七)-自定义类模板及运用

c/c++开发,无可避免的模板编程实践(篇七)-自定义类模板及运用_cpp 模板编程_py_free-物联智能的博客-CSDN博客c/c++开发,无可避免的模板编程实践(篇七),模板编程,自定义模板设计与应用,构建二叉树类模板,扩展二叉树类模板的功能应用,通过测试代码验证模板可用性,给出测试及源代码。https://blog.csdn.net/py8105/article/details/129150798        【8】c/c++开发,无可避免的模板编程实践(篇八)-标准库模板封装适配及运用

c/c++开发,无可避免的模板编程实践(篇八)-标准库模板封装适配及运用_py_free-物联智能的博客-CSDN博客c/c++开发,无可避免的模板编程实践(篇八),模板编程,基于标准库容器模板创建自己的跨线程安全的容器适配器,创建模板参数类型的结构体模板作为该容器适配器的存储对象。这些模板将应用与一个日志记录类,该日志记录对象是线程独立的,并有一个子类磁盘管理线程类,用来实现磁盘剩余空间巡检与旧日志文件删除。https://blog.csdn.net/py8105/article/details/129170995       【9】 c/c++开发,无可避免的模板编程实践(篇九)-c++11的新顺序容器

c/c++开发,无可避免的模板编程实践(篇九)-c++11的新顺序容器_c++11新容器_py_free-物联智能的博客-CSDN博客c/c++开发,无可避免的模板编程实践(篇九)-c++11的新顺序容器,std::array容器,本质上是一个数组适配的结构体模板,可看做支持迭代器、安全检查的特殊数组;std::forward_list是两个模板参数T及std::allocator的类模板,是单链表,基本提供与std::list基本一致的功能。给出示例源代码及演示结果。https://blog.csdn.net/py8105/article/details/129427681        【10】c/c++开发,无可避免的模板编程实践(篇十)-c++11原位构造元素(emplace)

c/c++开发,无可避免的模板编程实践(篇十)-c++11原位构造元素(emplace)_py_free-物联智能的博客-CSDN博客c/c++开发,无可避免的模板编程实践(篇十)-c++11原位构造元素(emplace),介绍容器的修改器成员函数原位构造元素(emplace),并与容器旧有修改器成函数做比对,给出演示效果及源码。https://blog.csdn.net/py8105/article/details/129452196

        2.5 操作符(4篇)

        【1】c/c++开发,无可避免的操作符operator(篇一),操作符重载

c/c++开发,无可避免的操作符operator(篇一),操作符重载_非成员运算符要求类类型或枚举类型的参数_py_free-物联智能的博客-CSDN博客c/c++开发,无可避免的操作符operator(篇一),操作符重载,较全面阐述了各种常规运算符、操作符和特殊运算符、操作符的重载设计,给出演示代码及演示结果。https://blog.csdn.net/py8105/article/details/129461618        【2】c/c++开发,无可避免的操作符operator(篇二),赋值操作符知多少

c/c++开发,无可避免的操作符operator(篇二),赋值操作符知多少_py_free-物联智能的博客-CSDN博客c/c++开发,无可避免的操作符operator(篇二),赋值操作符知多少,介绍最常用的赋值操作符,对直接赋值、复制赋值、移动赋值、复合赋值以及赋值操作符调用决议进行阐述,给演示源码及演示。https://blog.csdn.net/py8105/article/details/129473922        【3】c/c++开发,无可避免的操作符operator(篇三),类与操作符

c/c++开发,无可避免的操作符operator(篇三),类与操作符_py_free-物联智能的博客-CSDN博客c/c++开发,无可避免的操作符operator(篇三),类与操作符,像内置类型一样使用类类型。全面阐述类与各种操作符的关联及实现,给出演示及完整源代码。https://blog.csdn.net/py8105/article/details/129490566        【4】c/c++开发,无可避免的操作符operator(篇四),用好操作符

c/c++开发,无可避免的操作符operator(篇四),用好操作符_py_free-物联智能的博客-CSDN博客c/c++开发,无可避免的操作符operator(篇四),用好操作符,操作符很常见,陷阱不常见,阐述操作符与各类表达式的结合与应用,给出演示及源代码。https://blog.csdn.net/py8105/article/details/129526219

        2.6 字符串及输入输出IO(6篇)

        【1】C/C++开发,无可避免的字符串(篇一).字节数组

C/C++开发,无可避免的字符串(篇一).字节数组_c 定义字节数组_py_free-物联智能的博客-CSDN博客C/C++开发,无可避免的字符串(篇一).字节数组。标准库实现字符串功能主要是通过类似于std::vector容器的std::basic_string类模板实现的,该模板提供了针对各种字符型号的特化类,如using std::string = std::basic_string;博文还阐述了std::basic_string—_view、空终止字节字符串、空终止宽字符串、空终止多字节字符串等功能函数集,并给出演示代码。https://blog.csdn.net/py8105/article/details/129763021        【2】C/C++开发,无可避免的字符串(篇二).STL字符串及字符处理函数

C/C++开发,无可避免的字符串(篇二).STL字符串及字符处理函数_stl翻转字符串_py_free-物联智能的博客-CSDN博客C/C++开发,无可避免的字符串(篇二).STL字符处理,介绍字符指针、字符数组及区别,介绍标准库提供的字符串处理函数集、字符处理函数集以及自定义MyString类演示如何运用这些函数集,给出演示源代码。https://blog.csdn.net/py8105/article/details/129776842        【3】C/C++开发,无可避免的IO输入/输出(篇一).设备层流IO处理

C/C++开发,无可避免的IO输入/输出(篇一).设备层流IO处理_py_free-物联智能的博客-CSDN博客C/C++开发,无可避免的IO输入/输出(篇一).设备层流IO处理,介绍std::ostream类涉及的继承体系、流状态、流全局对象、缓冲区刷新及自定义输出操作符operatorhttps://blog.csdn.net/py8105/article/details/129795505        【4】C/C++开发,无可避免的IO输入/输出(篇二).文件流IO处理

C/C++开发,无可避免的IO输入/输出(篇二).文件流IO处理_py_free-物联智能的博客-CSDN博客C/C++开发,无可避免的IO输入/输出(篇二).文件流IO处理,介绍fstream、ofstream、ifstream三个文件流IO类的文件格式、格式管理、流状态、缓冲区实现及管理、有格式输入输出、无格式输入输出等知识点,给完整演示代码。https://blog.csdn.net/py8105/article/details/129809162        【5】C/C++开发,无可避免的IO输入/输出(篇三).字符串流(内存流)IO处理

C/C++开发,无可避免的IO输入/输出(篇三).字符串流(内存流)IO处理_py_free-物联智能的博客-CSDN博客C/C++开发,无可避免的IO输入/输出(篇三).字符串流(内存流)IO处理,介绍字符串流系列类stringstream/istringstream/ostringstream的继承体系、缓冲方式、打开格式、开发运用等内容,给出完整演示源代码。https://blog.csdn.net/py8105/article/details/129830327        【6】C/C++开发,无可避免的IO输入/输出(篇四).c实现浅述

C/C++开发,无可避免的IO输入/输出(篇四).c实现浅述_py_free-物联智能的博客-CSDN博客C/C++开发,无可避免的IO输入/输出(篇四).c实现浅述https://blog.csdn.net/py8105/article/details/129909470

        2.7 多线程及协程(6篇)

        【1】C/C++开发,无可避免的多线程(篇一).跨平台并发编程姗姗来迟

C/C++开发,无可避免的多线程(篇一).跨平台并发编程姗姗来迟_py_free-物联智能的博客-CSDN博客C/C++开发,无可避免的多线程(篇一)并发编程姗姗来迟,介绍如何搭建支持c++11以上版本的编译器,并阐述c/c++多线程内容以及c/c++在c++11标准前pthread函数集及c++11标准后thread类对于多线程编程的不同应用及案例,并阐述了c++20标准提出的std::jthread类。https://blog.csdn.net/py8105/article/details/129278973        【2】C/C++开发,无可避免的多线程(篇二).thread与其支持库

C/C++开发,无可避免的多线程(篇二).thread与其支持库_py_free-物联智能的博客-CSDN博客C/C++开发,无可避免的多线程(篇二).thread与其支持库,介绍了线程相关的原子类型、原子操作支持库(原子类型特化、原子布尔类型、内存同步顺序)、thread辅助支持库(线程、互斥、条件变量和future)等知识点,给出测试验证及测试源码。https://blog.csdn.net/py8105/article/details/129305084        【3】C/C++开发,无可避免的多线程(篇三).协程及其支持库

C/C++开发,无可避免的多线程(篇三).协程及其支持库_c协程库_py_free-物联智能的博客-CSDN博客C/C++开发,无可避免的多线程(篇三).协程及其支持库,介绍c++20标准的协程支持库内各个相关类型,说明它们所提供协程的编译时与运行时支持。对协程句柄、协程可等待体、无操作协程以及co_await、co_yield、co_return这些关键词应用展开阐述,通过源代码测试验证应用性。https://blog.csdn.net/py8105/article/details/129336892        【4】C/C++开发,无可避免的多线程(篇四).线程与函数的奇妙碰撞

C/C++开发,无可避免的多线程(篇四).线程与函数的奇妙碰撞_py_free-物联智能的博客-CSDN博客C/C++开发,无可避免的多线程(篇四).线程与函数的奇妙碰撞,讲述线程thread类如何于函数引用、函数指针、函数对象(包括lambda表达式、std::function函数包装器)相结合,一起执行并发任务。还进一步描述函数转发包装器std::bind如何将类成员函数、操作符、嵌套对象成员函数等与线程thread结合,巧妙实现多线程逻辑。给出完整演示信息及源代码。https://blog.csdn.net/py8105/article/details/129345145        【5】C/C++开发,无可避免的多线程(篇五).实现自己的线程封装类

C/C++开发,无可避免的多线程(篇五).实现自己的线程封装类_c++线程类封装_py_free-物联智能的博客-CSDN博客C/C++开发,无可避免的多线程(篇四).实现自己的线程封装类,如何基于c++98的pthread_t封装线程类,如何基于c++11标准库的std::thread封装线程类,并与c++98的版本保持一致,最后将两个版本的线程类合成一个线程版本mythread,给出实现过程、演示结果及源代码。https://blog.csdn.net/py8105/article/details/129363133        【6】C/C++开发,无可避免的多线程(篇六).线程池封装类

C/C++开发,无可避免的多线程(篇六).线程池封装类_py_free-物联智能的博客-CSDN博客C/C++开发,无可避免的多线程(篇六).线程池封装类,介绍线程池的知识及线程池类设计,给出源代码、测试代码及测试演示,另外需要特别支持线程池是用来解决频繁创建和销毁线程业务场景的,请慎用线程池。https://blog.csdn.net/py8105/article/details/129391609

        2.8 宏、断言(2篇)

        【1】c/c++开发,无可避免的宏定义使用案例

c/c++开发,无可避免的宏定义使用案例_py_free-物联智能的博客-CSDN博客c/c++开发,无可避免的宏定义使用案例,c/c++编程中,如何利用好宏这个特性https://blog.csdn.net/py8105/article/details/128969681        【2】C/C++开发,c/c++断言(预处理断言、编译断言、运行断言)

C/C++开发,c/c++断言(预处理断言、编译断言、运行断言)_c++ 断言_py_free-物联智能的博客-CSDN博客c/c++断言(预处理断言、编译断言、运行断言)https://blog.csdn.net/py8105/article/details/127052832

三、实践案例及博文索引

        3.1 通信设计(8篇)

        【1】C/C++开发,udp组播通信实现(c++)

C/C++开发,udp组播通信实现(c++)_py_free-物联智能的博客-CSDN博客UDP组播方式实现案例源码https://blog.csdn.net/py8105/article/details/100180383       【2】 C/C++开发,利用epoll创建自己的后台服务,实现对各个客户端网络通信(含示例代码)

C/C++开发,利用epoll创建自己的后台服务,实现对各个客户端网络通信(含示例代码)_epollpri_py_free-物联智能的博客-CSDN博客利用epoll创建自己的后台服务,实现对各个客户端网络通信(含示例代码),设计一个epoll线程接口类包含线程能力、epoll API能力及消息缓存队列能力https://blog.csdn.net/py8105/article/details/126970247       【3】 C/C++开发,基于epoll的tcp-socket通信服务模块

C/C++开发,基于epoll的tcp-socket通信服务模块_c++ windows中epoll_py_free-物联智能的博客-CSDN博客最近一直研究对自己的开源物联网边缘服务瘦身,已适应更短缺资源的设备上运行,因此需要裁减第三方库的依赖,由于原先tcp-socket通信是调用第三方库的,因此准备动手为开源项目写一个简要适合项目需要的服务模块。由于服务端需要针对每个客户端进行定制下行通讯需求,因此采用epoll以便于明确知道句柄进行特定通信。https://blog.csdn.net/py8105/article/details/105973950        【4】c/c++开发,c++无可避免的TCP/Socket通信开发实战案例

c/c++开发,c++无可避免的TCP/Socket通信开发实战案例_c++ tcp库_py_free-物联智能的博客-CSDN博客c/c++开发,c++无可避免的TCP/Socket通信开发实战案例,一步步引导,如何开发一个TCP/Socket通信服务程序,如何实现多客户端支持,如何提供通信效率,如何进行编解码及如何进行结构化块数据传输等,并给出完整源码供大家学习。https://blog.csdn.net/py8105/article/details/128903850        【5】c/c++开发,无可避免的代码重构实战(基于前文TCP/Socket通信开发案例)

c/c++开发,无可避免的代码重构实战(基于前文TCP/Socket通信开发案例)_c++代码重构_py_free-物联智能的博客-CSDN博客c/c++开发,无可避免的代码重构实战(基于前文TCP/Socket通信开发案例)https://blog.csdn.net/py8105/article/details/128933842        【6】C/C++开发,物联网通信-如何基于TCP/IP简要设计业务应用协议(c++案例)

C/C++开发,物联网通信-如何基于TCP/IP简要设计业务应用协议(c++案例)_c 网络协议开发怎么设计_py_free-物联智能的博客-CSDN博客如何基于TCP/IP简要设计业务应用协议(c++案例)https://blog.csdn.net/py8105/article/details/126749510        【7】C/C++开发,异步串行接口(uart)通信示例

C/C++开发,异步串行接口(uart)通信示例_c++ uart_py_free-物联智能的博客-CSDN博客一直以来在串口通信方面都很信任libctb,其对serial/gpib通知支持win/linux,的确好用,但最近实现arm的串口通信时发现ctb还是有点复杂,因此想到构建一个相对简单的串口通信接口,主要依赖于linux的termios.h,termios 结构是在POSIX规范中定义的标准接口,通过设置termios类型的数据结构中的值和函数调用,你就可以对终端接口进行控制。更多描述可以自行在命...https://blog.csdn.net/py8105/article/details/105813168       【8】 C/C++开发,c++线程通信-构建另类的线程间数据传输信道

C/C++开发,c++线程通信-构建另类的线程间数据传输信道_c++ 线程通信_py_free-物联智能的博客-CSDN博客c++线程之间通信方式多种多样,诸如全局变量、回调函数、事件通知、信号通知、管道等等,下面为大家介绍一种本人在项目实践过常用并使用的一种线程通信方式,该通信方式主要仿消息队列实现一种类全局变量或线程变量的队列类。即单体类很多时候可以实现全局变量的效果,通过单体类+队列容器+线程锁可以快速构建线程之间的数据通道,达到安全通信的目的。https://blog.csdn.net/py8105/article/details/105593421

        3.2 资源监测(6篇)

        【1】C/C++开发,根据磁盘或网卡创建软件License约束(c++)

C/C++开发,根据磁盘或网卡创建软件License约束(c++)_c++ license_py_free-物联智能的博客-CSDN博客C/C++开发,根据磁盘或网卡创建软件License约束(c++),根据磁盘或网卡创建软件License的方法,其采用对称式加密,即加密和解密使用同一个密钥,加密算法是自定义的,对软件进行版权保护,使其在合适机器上才能运行。https://blog.csdn.net/py8105/article/details/90229088        【2】c/c++实现linux下各个磁盘统计数据获取

c/c++实现linux下各个磁盘统计数据获取_py_free-物联智能的博客-CSDN博客c/c++实现linux下各个磁盘统计数据获取,打开“df”命令管道文件句柄,识别该文件内容格式及字段描述,从中读取到需要的数据信息。https://blog.csdn.net/py8105/article/details/127144417        【3】c/c++实现linux下各个内存统计数据获取

c/c++实现linux下各个内存统计数据获取_linux获取内存参数 c++_py_free-物联智能的博客-CSDN博客c/c++实现linux下各个内存统计数据获取,linux各个内存数据信息可通过/proc/meminfo文件句柄进行访问获取,本文实现就是打开“cat /proc/meminfo”命令管道文件句柄,识别该文件内容格式及字段描述,从中读取到需要的数据信息https://blog.csdn.net/py8105/article/details/127143784        【4】c/c++实现linux下各个CPU统计信息获取

c/c++实现linux下各个CPU统计信息获取_linux获取cpu参数 c++_py_free-物联智能的博客-CSDN博客c/c++实现linux下各个CPU统计信息抓取,调用系统命令,打开“cat /proc/stat”命令管道文件句柄,识别该文件内容格式,从中读取到需要的cpu统计数据信息https://blog.csdn.net/py8105/article/details/127141041        【5】c/c++实现linux下各个网络流量抓取

c/c++实现linux下各个网络流量抓取_c++ 获取网卡流量_py_free-物联智能的博客-CSDN博客c/c++实现linux下各个网络流量抓取,通过cat /proc/net/dev文件获取信息,结合awk进行过滤提取输出信息,在c/c++中调用popen函数文件句柄,进行访问获取网络流量相关信息https://blog.csdn.net/py8105/article/details/127135477        【6】C/C++开发,c/c++如何实现根据磁盘空间管理自己的日志文件案例

C/C++开发,c/c++如何实现根据磁盘空间管理自己的日志文件案例_c++开发日志管理_py_free-物联智能的博客-CSDN博客c/c++如何实现根据磁盘空间管理自己的日志文件案例,设计一个磁盘管理功能模块,根据指定磁盘目录,如win指定{C,D},linux指定{/}等,获取磁盘总空间、剩余空间的数值,就可以依据存储空间来判定是否删除日志文件,为系统运行保持必要的空间。提供一个删除日志的API,根据指定目录和文件扩展名,去删除旧的日志文件。https://blog.csdn.net/py8105/article/details/126947879

        3.3 服务接口(10篇)

        【1】c/c++开发,无可避免的文件访问开发案例

c/c++开发,无可避免的文件访问开发案例_py_free-物联智能的博客-CSDN博客c/c++开发,无可避免的文件访问开发案例,基于标准的C库函数fopen, fclose, fread, fwrite, fgetc, fgets等系列函数,创建文件IO模块,实现对文件的读写、行内容读写、行内容分割,以及文件目录及文件名的创建、删除、重命名、检查等IO功能,通过示例代码展示了文件IO模块的应用https://blog.csdn.net/py8105/article/details/128959951        【2】C/C++开发,基于SMTP协议的C++邮件接口实现

C/C++开发,基于SMTP协议的C++邮件接口实现_vs c++ 邮件收发_py_free-物联智能的博客-CSDN博客实现采用电子邮件发送一个实时调度统计的报表给客户,提炼出来独立的C++邮件接口,方便后续可用,也分享出来给感兴趣的小伙伴们参考一下使用。https://blog.csdn.net/py8105/article/details/103837469        【3】C/C++开发,基于IBM纯 c标准MQTT源码,实现纯C语言访问阿里云物联网平台开发案例

C/C++开发,基于IBM纯 c标准MQTT源码,实现纯C语言访问阿里云物联网平台开发案例_c++实现mqtt协议_py_free-物联智能的博客-CSDN博客基于IBM纯 c标准MQTT源码,实现纯C语言访问阿里云物联网平台开发案例,详细描述如何在阿里云物联网平台创建产品、设备,如何采用MQTT.fx工具测试,最后通过socket-tcp通信+纯c语言的MQTT开源库实现一个简要的访问阿里云物联网平台的源码实践案例。该MQTT标准库可迁移至STM32,请关注本人的后续博文。https://blog.csdn.net/py8105/article/details/128341479       【4】 C/C++开发,阿里云短信服务接口的c++实现

C/C++开发,阿里云短信服务接口的c++实现_c++ 阿里云_py_free-物联智能的博客-CSDN博客C/C++开发,阿里云短信服务接口的c++实现,采用acl_master实现调用阿里云短信服务接口,完成签名算法、base64算法及HTTP协议连接通信。https://blog.csdn.net/py8105/article/details/80089001        【5】qt5.8(c++)实现阿里云人脸识别云接口

qt5.8(c++)实现阿里云人脸识别云接口_阿里云人脸识别接口_py_free-物联智能的博客-CSDN博客qt5.8(c++)实现阿里云人脸识别云接口,通过qt实现图片编解码及签名认证,调用阿里云人脸识别API接口获得图片识别结果信息。https://blog.csdn.net/py8105/article/details/81452708        【6】C/C++开发,利用acl_master的http库进行聚合天气预报信息的数据抓取

C/C++开发,利用acl_master的http库进行聚合天气预报信息的数据抓取_py_free-物联智能的博客-CSDN博客C/C++开发,利用acl_master的http库进行聚合天气预报信息的数据抓取https://blog.csdn.net/py8105/article/details/82179126        【7】利用acl_master的http库进行聚合数据信息的数据抓取

https://blog.csdn.net/py8105/article/details/79510873https://blog.csdn.net/py8105/article/details/79510873        【8】C/C++开发,gsoap的c++ server和java client实现

C/C++开发,gsoap的c++ server和java client实现_gsoap vs2015_py_free-物联智能的博客-CSDN博客gsoap的c++ server和java client实现https://blog.csdn.net/py8105/article/details/74842048        【9】C/C++开发,将c++静态库实现二次封装供java调用

C/C++开发,将c++静态库实现二次封装供java调用_c项目封装jni_py_free-物联智能的博客-CSDN博客JNI是Java Native Interface的缩写,中文为JAVA本地调用。使用JNI可以很方便的用我们的Java程序调用C/C++程序https://blog.csdn.net/py8105/article/details/69788513        【10】C/C++开发,基于cectd源码打造etcd数据库的win/linux静态编译的c-SDK包

C/C++开发,基于cectd源码打造etcd数据库的win/linux静态编译的c-SDK包_etcd源码下载_py_free-物联智能的博客-CSDN博客目前市面上满足c/c++的etcd-client-SDK不多,支持win的更寥寥无几,为了实现支持c/c++访问etcd的跨平台和快速移植的 sdk包,在源码cetcd包基础上做进一步调整,满足win/linux支持静态编译的etcd-c-client-SDK包。首先提供开源cetcd包源码下载网址:https://gitee.com/mirrors/cetcd ,该源码包已经实现了linux下可编译动静态库,但需要动态链接第三方库。下面给出具体改造过程:【1】下载源码1)先下载开源cetcd源https://blog.csdn.net/py8105/article/details/106209588

        3.4 日志系统(3篇)

        【1】C/C++开发,利用c语言中宏定义及宏替换特性构建自己的log输出

C/C++开发,利用c语言中宏定义及宏替换特性构建自己的log输出_py_free-物联智能的博客-CSDN博客利用c语言中宏定义及宏替换特性构建自己的log输出https://blog.csdn.net/py8105/article/details/126917781        【2】C/C++开发,c++中如何利用VA_LIST 和单体模式,构建自己的log小系统

C/C++开发,c++中如何利用VA_LIST 和单体模式,构建自己的log小系统_c++ va_list_py_free-物联智能的博客-CSDN博客c++中如何利用VA_LIST 和单体模式,构建自己的log小系统,设计一个单体类CLogger,该类具备独立线程能力,采用一个队列来接收来自各个线程之间、各个功能模块之间的日志推送,CLogger实例负责将加入到队列的日志,添加一些附加信息后,逐条记录在文件中。 为了区分日志事件,通过枚举创建日志类型;针对日志运行是一个长期的过程,不可能全部存储在一个日志文件中,因此指定一个文件目录,并按天来存放.https://blog.csdn.net/py8105/article/details/126930886        【3】C/C++开发,c/c++如何实现根据磁盘空间管理自己的日志文件案例

C/C++开发,c/c++如何实现根据磁盘空间管理自己的日志文件案例_c++开发日志管理_py_free-物联智能的博客-CSDN博客c/c++如何实现根据磁盘空间管理自己的日志文件案例,设计一个磁盘管理功能模块,根据指定磁盘目录,如win指定{C,D},linux指定{/}等,获取磁盘总空间、剩余空间的数值,就可以依据存储空间来判定是否删除日志文件,为系统运行保持必要的空间。提供一个删除日志的API,根据指定目录和文件扩展名,去删除旧的日志文件。https://blog.csdn.net/py8105/article/details/126947879

        3.5 工程服务(9篇)

        【1】C/C++开发,c++代码如何实现在win/linux下创建编译及部署后台服务,并管理其他服务

C/C++开发,c++代码如何实现在win/linux下创建编译及部署后台服务,并管理其他服务_c++windows编译linux_py_free-物联智能的博客-CSDN博客c++代码如何实现在win/linux下创建编译及部署后台服务,并管理其他服务https://blog.csdn.net/py8105/article/details/126642124        【2】c/c++中如何实现动态库动态加载(含完整工程示例代码)

c/c++中如何实现动态库动态加载(含完整工程示例代码)_c++加载动态库_py_free-物联智能的博客-CSDN博客本文将win、linux加载、卸载动态库,并从动态库链接模块中获取类实例或函数地址等封装成统一的API接口,并集成在dllLoad.h/dllLoad.cpp中实现。构建一个注册类RegisterM,内置一个map容器,用来装载加载的动态库模块,并统一提供模块索引、及从模块中实现类实例获取、删除、函数地址获取等功能。 在动态库实现方面,提供一个虚拟元类MetaObject,然后在库的cpp文件中建立子类继承该类,实现其具体功能,并在cpp文件中直接提供函数APIhttps://blog.csdn.net/py8105/article/details/126995285        【3】C/C++开发,用svn管理软件版本信息

C/C++开发,用svn管理软件版本信息_$wcnow_py_free-物联智能的博客-CSDN博客C/C++开发,用svn管理软件版本信息,自动化生成版本信息及调用https://blog.csdn.net/py8105/article/details/69211071        【4】C/C++开发,根据磁盘或网卡创建软件License约束(c++)

C/C++开发,根据磁盘或网卡创建软件License约束(c++)_c++ license_py_free-物联智能的博客-CSDN博客C/C++开发,根据磁盘或网卡创建软件License约束(c++),根据磁盘或网卡创建软件License的方法,其采用对称式加密,即加密和解密使用同一个密钥,加密算法是自定义的,对软件进行版权保护,使其在合适机器上才能运行。https://blog.csdn.net/py8105/article/details/90229088        【5】C/C++开发,计算公式库学习

C/C++开发,计算公式库学习_muparser库_py_free-物联智能的博客-CSDN博客通过计算公式库(muparser),快速和简单地解析数学表达式及进行计算https://blog.csdn.net/py8105/article/details/68954214        【6】C/C++开发,BF模式匹配算法改良

C/C++开发,BF模式匹配算法改良_改造bf算法_py_free-物联智能的博客-CSDN博客BF算法是带回溯的模式匹配算法,如果缓冲标记已做的匹配,减少回溯,可以提高时间效率,当然会牺牲空间,实际运用中需要做权衡考虑https://blog.csdn.net/py8105/article/details/68958591        【7】C/C++开发,散列函数与层级结构数据

C/C++开发,散列函数与层级结构数据_散列函数分组迭代散列算法的层次结构_py_free-物联智能的博客-CSDN博客C/C++开发,散列函数与层级结构数据,使用散列表重新组织树结构,使其更扁平化https://blog.csdn.net/py8105/article/details/68952202        【8】C/C++开发,计算机使用护眼程序

C/C++开发,计算机使用护眼程序_怎么样编写一个护眼程序_py_free-物联智能的博客-CSDN博客通过一个win小服务定期锁屏或调用屏保进行计算机使用时长提醒https://blog.csdn.net/py8105/article/details/68955538        【9】基于Zero-Ice搭建的物联网监控平台

基于Zero-Ice搭建的物联网监控平台_zero ice_py_free-物联智能的博客-CSDN博客基于Zero-Ice搭建的物联网监控平台,支持本地部署、云端部署。https://blog.csdn.net/py8105/article/details/85060504

猜你喜欢

转载自blog.csdn.net/py8105/article/details/129927716