自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 Makefile中的一些知识点

在 Makefile 中,变量的赋值可以来源于多种地方。是 GNU Make 中的一个关键字,用来。然后bash执行make的时候传参的时候。通常情况下:Makefile中设置。Makefile 内部定义。命令行传入(优先级更高)那么 Make 会使用。

2025-06-05 15:28:56 188

原创 RFC862 EchoServer

Echo 协议是一种简单的网络协议,设计目的是让客户端向服务器发送数据,服务器将接收到的数据原封不动地返回(回显)给客户端。

2025-05-11 22:31:12 201

原创 ATCHANNEL.c介绍

的主要职责是:通过串口(如)与 modem 进行 AT 命令通信。维护一个读线程负责接收并处理 modem 返回的数据。提供线程安全的接口供上层发送命令并同步等待响应。解析返回结果,包括OKERROR/ 中间响应等。| ATChannel API | ← at_send_command() 等接口| 命令同步机制 + 线程锁 | ← pthread_mutex, condition。

2025-04-30 17:52:25 713

原创 Muduo Logger

往文件写日志的一个常见问题是,万一程序崩溃,那么最后若干条日志往往就丢失了,因为日志库不能每条消息都flush硬盘,更不能每条日志都open/close文件,这样性能开销太大。殊不知如果出现程序死循环拼命写日志的异常情况,那么往往是开头的几条日志最关键,它往往反映了引发异常(busy-loop)的原因(例如收到某条非法消息),后面都是无用的垃圾日志。4. 日志消息的格式是固定的不需要运行时配置,这样可节省每条日志解析格式字符串的开销,好处:使用固定格式的日志,使用脚本好提取,好处理,格式变了,就比较麻烦。

2025-03-09 01:23:13 944

原创 多缓冲技术

这种技术通常用于计算机显示图像,也常用来避免在读写设备不同的情况下使用双端口RAM(DPRAM)。在计算机科学中,多重缓冲是一种使用多个缓冲区来存储数据块的技术,目的是使“读取者”看到的。尽管可能是旧的)数据版本,而不是正在被“写入者”更新中的。

2025-03-08 23:43:32 187

原创 vector的emplace_back和push_back

2. 在a不存在的情况下,使用emplace_back最佳,push_back 的move次之,push_back的最差。“在已经存在对象的情况下,push_back 和 emplace_back其实都只有一次调用构造,不过构造函数不同。1. 在a已经存在的情况下,使用push_back的move最佳,其他emplace和push都差不多。对于拷贝构造和move构造, 拷贝可能涉及到深浅拷贝,move直接搞指针,所以快。push_back(std::move(a)):调用一次移动构造。

2025-02-28 15:32:28 195

原创 C++中的模板的一些约定熟成(不看后悔一辈子)

Predicate:强调条件判断,返回 bool,用于筛选或测试。Compare:强调顺序比较,返回 bool,用于排序或优先级。Operation:强调计算或变换,返回任意类型,用于处理数据。Function:最通用,表示任何可调用对象,不限类型或用途。命名惯例典型含义示例场景Predicate返回布尔值的条件检查Compare定义顺序的二元比较Operation执行变换或计算Function通用可调用对象Iterator迭代器类型T通用类型参数。

2025-02-28 01:12:11 933

原创 模板实例化

模板只是蓝图,是一种编译器用来生成具体代码的机制,会在编译期会实例化的,之后才可以用实例化特点。

2025-02-28 00:41:06 265

原创 Linux的Pthreads mutex采用futex(2)实现

(Fast Userspace Mutex)是一种 Linux。,但具体的实现取决于 glibc 版本和互斥锁的类型。如果你有更具体的问题,可以继续问我!如果线程持锁时间较短(比如自旋锁。中有不同类型,影响是否使用。,Linux 还使用。

2025-02-10 23:21:23 527

原创 GCC 头文件的搜索顺序

目录作用来源系统级头文件系统软件包GCC 运行时库和内部文件GCC本地安装的软件头文件手动安装的软件手动指定的-I路径(如这样可以保证本地安装的库优先于系统库,但不会影响 GCC 自己的库。当您使用它gcc xxx.c来编译程序时,GCC会自动为您包含一些默认的-I(包含路径)和(库路径)-L1. GCC 默认的-I路径当你不手动指定-IGCC默认会搜索GCC 自己的头文件,比如stdarg.h手动安装的软件的头文件目标架构相关的系统头文件标准库头文件,比如stdio.h。

2025-02-01 23:48:06 527

原创 I/O multiplexing LT and ET

可惜的是,目前内核中使用同一种数据结构表示读和写事件,读写事件放在一个就绪列表中,在读出后才判断是读事件还是写事件。因此,我们无法实现在不同的场景使用不同的模式。值得注意的是,许多第三方网络库都使用的是LT模式,一般来说为了互相的兼容推荐使用LT模式。如果有事件到达,还没有进行处理,则它会一直通知,直到事件被处理。LT模式 更适用于read()事件,它不会造成接收的饥饿,ET模式可能会造成数据接收不完整的情况。,即使你没有处理这个事件,它也会持续触发。,否则可能会丢失连接。

2025-01-31 15:46:08 561

原创 WeakCallback

测试类具体分解。

2024-04-11 17:05:06 202

原创 c# getUppercase

需要注意的是,GetUpperBound 方法返回的是最大索引值,而不是数组的长度。在这个示例中,`array` 是一个 3x3 的二维数组,`maxIndex0` 和 `maxIndex1` 分别是第一维和第二维中最大元素的索引。在这个例子中,`array` 是一个 3 行 4 列的二维数组,`maxRowIndex` 的值为 2,因为行的索引范围是 0 到 2。在这个例子中,`array` 是一个 3 行 4 列的二维数组,`minRowIndex` 的值为 0,因为行的索引范围是 0 到 2。

2023-03-31 18:02:30 247

原创 MP的笔记

mybatisPlus初始使用

2023-03-13 14:26:14 58

空空如也

空空如也

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

TA关注的人

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