自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(16)
  • 收藏
  • 关注

原创 还用system?这个命令执行函数更安全好用

通过本文的介绍,我们详细了解了 executeCMD 函数的实现原理和代码逻辑。该函数通过使用 popen 函数执行外部命令,结合 sigaction 和 alarm 函数实现了超时处理机制,并通过动态内存管理确保了能够处理不同长度的命令输出。同时,我们也探讨了一些可能的优化方向,希望能对读者在实际开发中有所帮助。

2025-03-31 10:19:36 512

原创 基于C语言的表驱动法

c// 模块结构体// 功能模块名称// 通用参数类型的处理函数指针} Module;// 注册表结构体// 模块数组int count;// 当前已注册模块数量} Registry;// 全局注册表实例上述代码中,我们定义了Module结构体来表示一个功能模块,包含模块名称、处理函数指针、版本号和错误码。Registry结构体则用于管理所有已注册的模块,包含一个模块数组和当前已注册模块的数量。通过使用表驱动法实现功能的注册与管理系统,我们可以方便地添加、查找、注销和执行功能模块。

2025-03-23 22:08:52 396

原创 Linux C++ 串口通信配置详解:基于 termios 的串口初始化函数实现

本文通过完整的代码实现和详细解析,展示了 Linux 环境下 C++ 串口配置的核心方法。通过合理设置波特率、数据位、校验位、停止位和超时参数,可以实现稳定可靠的串口通信。实际应用中需注意权限管理和参数匹配问题,结合具体场景优化配置参数。

2025-03-23 21:36:39 711

原创 C++ 异常处理:基础使用与自定义异常

在某些情况下,标准异常类可能无法满足我们的需求,这时可以自定义异常类。自定义异常类通常继承自类,并实现what()方法。以下是一个自定义异常类的示例代码:cpppublic:以下是一个使用自定义异常类的示例代码:cpppublic:try {// 模拟读取配置文件时出现错误// 设置预值// ...// 继续执行后续代码return 0;

2025-03-23 21:23:39 269

原创 简单好用程序崩溃拉起shell脚本

这行代码的主要功能是检查指定名称的进程是否正在运行。若该进程未运行,条件判断结果为真;若进程正在运行,条件判断结果为假。

2025-03-18 11:38:50 695

原创 国产打印机,打印机出阿拉伯文等的解决方案

OpenCV(Open Source Computer Vision Library)是一个广泛应用于计算机视觉任务的开源库,用 C++ 编写,同时也支持 Python、Java 等多种编程语言。

2025-03-18 11:16:59 1023

原创 好用的日志库 -- spdlog

在软件开发中,日志是一种非常重要的调试和监控工具,而日志级别则用于区分不同重要程度和用途的日志信息。而好的日志库可以让你程序清晰且在release版本上轻松按等级打印。spdlog C++ 日志库,易于集成,支持多线程,可自定义日志格式和输出目标。以下是封装的一个.h文件可以让spdlog使用起来更方便,且使用了单列模式,保证整个程序中只有一个日志实例,避免重复初始化。以下是logserver.h 的内容。

2025-03-14 00:17:55 769

原创 学习git?知晓这些命令就够了

○ 你需要手动打开文件,解决冲突,然后使用git add将解决冲突后的文件添加回暂存区,最后使用git revert --continue完成git revert操作。在命令行中输入git revert <commit - hash - of - commit3>(这里的<commit - hash - of - commit3>是提交 3 的哈希值,你可以通过git log命令查看)。git submodule update --init --recursive //子模块为空,用这个克隆。

2025-03-12 09:44:28 238

原创 C++状态机好用模板

程序状态机(Program State Machine)是一种用于描述系统在不同状态之间转换的设计模式,它可以将复杂的系统行为分解为多个简单的状态和状态之间的转换规则,使程序的逻辑更加清晰、易于维护和扩展。以下为你详细介绍程序状态机的设计方法、步骤和示例。## 设计思路和步骤。

2025-03-11 21:35:17 300

原创 C++ 事件标志组的实现、简单好理解,好用

事件标志组是由多个事件标志位组成的数据结构,每一个标志位可以表示一个特定事件的发生状态,通常用 “0” 表示事件未发生,“1” 表示事件已发生。多个事件标志位组合在一起,就可以用来表示多个不同事件的组合状态,任务可以通过对这些标志位的检测和设置来实现相互之间的同步和通信。任务等待:需要等待特定事件组合发生的任务会调用操作系统的等待函数,传入要等待的事件标志组合。任务唤醒:当事件标志组中的标志位状态满足任务等待的条件时,操作系统会将等待该事件标志组的任务唤醒,使其能够继续执行后续的操作。

2025-03-10 23:36:18 342

原创 C++11中的智能指针

在C++中,有三种智能指针,分别是:unique_ptr、shared_ptr和weak_ptr。这三种智能指针都是在STL的头文件< memory> 中定义的,可以在C++11及其以上版本中使用。总之,选择何种智能指针取决于具体场景。如果需要拥有对象的独占权,那么应该选择unique_ptr;如果需要共享对象所有权,那么应该选择shared_ptr;如果需要打破shared_ptr循环引用,那么应该选择weak_ptr。

2023-04-17 10:30:59 404

原创 计算机基础知识及CUP工作原理

CPU(Central Processing Unit,中央处理器)是计算机的核心部件,它负责执行计算机指令并控制计算机的各种操作。CPU由控制单元(CU)和算术逻辑单元(ALU)组成。CPU的工作原理可以简单地概括为以下几个步骤:1、取指令:CPU从内存中读取指令,这些指令告诉CPU应该执行什么操作。2、解码指令:CPU将指令解码成机器语言,以便能够理解并执行指令。3、执行指令:CPU执行指令,这包括算术和逻辑运算、数据传输和控制操作等。

2023-04-12 09:04:04 534

原创 ubuntu建立新用户

创建用户 和删除用户

2023-02-02 14:28:17 3490

原创 C++模板文件中使用static问题

当c++模板文件中有static,但static变量与其他源文件的变量冲突时,使用源文件和头文件分离,并加上模板实例化

2023-02-02 14:10:09 288

原创 ubuntu中下载软件失败解决方法

ubuntu下载软件下载不下来

2023-02-02 11:14:33 6277 2

转载 C++ explicit 关键字

一个提高C++性能的编码小技巧 ---- explicit 关键字

2023-01-28 10:32:49 92

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除