自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 【Linux笔记】IO 多路转接

select、poll与epoll是Linux下三种IO多路复用机制。select通过位图监控文件描述符,但存在扫描效率低、拷贝开销大等缺陷;poll改进了描述符数量限制,仍需线性遍历。epoll采用红黑树和就绪队列,实现O(1)事件检测,支持边缘触发(ET)与水平触发(LT),显著提升高并发性能。其中,ET模式要求非阻塞I/O并循环读写以避免数据遗漏,而LT模式则更易编程但可能频繁通知。epoll在大规模连接场景中优势明显,是现代高性能网络服务的核心技术。

2026-10-07 00:30:48 314

原创 【Linux笔记】IO模型

在 Linux 中 "一切皆文件",网络套接字、磁盘文件、管道、终端设备等,都对应一个fd内核通过fd来统一管理所有 IO 资源。

2026-10-07 00:29:09 103

原创 【Linux笔记】NAT与内网穿透

NAT与内网穿透

2026-10-06 23:48:37 109

原创 【Linux笔记】数据链路层

数据链路层负责局域网内相邻节点间的可靠帧传输与MAC寻址。以太网帧包含目的/源MAC、类型字段及数据,通过FCS校验完整性。ARP协议实现IP地址到MAC地址的解析,通过广播请求、单播应答完成映射,并更新本地缓存。通信流程中,设备先判断目标是否同网段,若为同一网段则执行ARP解析获取目标MAC,封装以太网帧后由交换机根据MAC地址表转发,最终实现数据在局域网内的准确传输。

2026-10-06 23:47:39 193

原创 【Linux笔记】网络层IP

本文系统介绍IP报文结构、子网划分原理与方法、公网与内网IP地址区别及NAT工作机制。

2026-10-06 23:46:13 282

原创 【C++笔记】多态

在计算机科学中,多态(Polymorphism)是 C++ 面向对象编程(OOP)中最核心、也是最具魅力的特性之一。 在 C++ 中,多态的核心思想是:“同一个接口,不同的行为”。 简单来说,你可以向不同的对象发送同一个指令,这些对象会根据自身的类型,以不同的方式去执行这个指令。 我们可以把 C++ 中的多态分为两大类:静态多态(编译时多态)和动态多态(运行时多态),通常我们讨论的“多态

2026-10-06 23:44:40 1125

原创 【C++笔记】继承(初阶)

一文吃透C++继承:从基础语法到底层内存模型,带你深度解锁面向对象编程与代码复用的进阶秘籍!

2026-10-06 23:44:27 274

原创 【Linux笔记】TCP协议

TCP 序号:Sequence Number是一个32位的字段,可以理解为一个周长为2^32的环形跑道上的刻度标记。0 / 2^32 (回绕点)(2^31 附近)整个圆环 = 32位序号空间弧段 [rcv_nxt, rcv_nxt + window) = 当前有效窗口​窗口之外的序号 = 无效/过期/未来解决的子问题:在无序、重复的数据流中唯一标识每一个字节。

2026-10-06 23:43:46 202

原创 【Linux笔记】UDP协议

它运行在 IP 层之上(即应用层),为应用程序提供最基本的多路复用与多路分用能力,但不提供可靠传输保障。

2026-10-06 23:43:16 290

原创 【Linux笔记】Http协议

HTTP/2、HTTP/3 不允许照搬 Connection、Keep-Alive、Transfer-Encoding: chunked 等 HTTP/1.1 连接管理方式。Accept-Encoding 协商 gzip、br 等内容编码,Content-Encoding 声明实际采用的编码。HTTP keep-alive 是复用 HTTP 连接的策略,TCP SO_KEEPALIVE 是内核探测连接存活的机制,二者不同。HTTP/2、HTTP/3 使用 :status 等协议字段,不传输这条文本响应行。

2026-10-02 19:45:03 40

原创 【Linux笔记】网络命令

ping [选项]-c指定发送次数,-i设置间隔-W设置超时时间。

2026-10-02 19:44:03 82

原创 【Linux笔记】TCPSocket

服务端流程:socket() -> bind() -> listen() -> accept() -> read() -> (处理业务逻辑) -> write() -> close()​客户端流程:socket() -> connect() -> read()/write() -> close()作用:创建一个 socket 文件描述符,指定协议族(如 )、类型( 表示 TCP)、协议(通常填 0)。内核行为:分配一个 和 ,初始化状

2026-10-02 19:43:43 137

原创 【Linux笔记】Socket编程基础

1.头文件包含:2.函数原型:3.函数功能:socket 用于创建一个网络通信端点(endpoint),返回一个文件描述符(file descriptor)

2026-10-02 19:43:26 150

原创 【Linux笔记】网络基础

OS内核用C/C++实现协议栈,双方使用相同结构体定义(如。

2026-10-02 19:43:15 189

原创 【Linux笔记】UpdSocket

本文介绍了基于UDP协议的Socket编程实现,涵盖EchoServer、DictServer和ChatServer三种典型应用。服务端采用socket()、bind()、recvfrom()接收数据,通过sendto()回传响应,客户端则通过sendto()发送请求并recvfrom()接收回复。代码结构清晰,使用C++封装类与函数式回调解耦网络逻辑与业务处理,支持日志记录、异常处理及多线程并发,具备良好的可扩展性与健壮性。

2026-10-02 19:43:02 171

原创 【Linux笔记】线程同步与互斥

死锁: 是指两个或多个执行单元(线程、进程、事务等)因争夺资源而造成的一种永久阻塞状态,每个单元都在等待另一个单元释放其所持有的资源,且没有任何外部干预能打破这种僵局。STL。

2026-10-02 19:37:35 166

原创 【Linux笔记】线程概念与控制

线程拥有独立的:​1. 寄存器​2. 程序计数器 PC​3. 线程栈 Stack​4. 线程局部存储 TLS​5. 调度状态线程共享进程的:​1. 代码段​2. 全局变量​3. 静态变量​4. 堆 Heap​5. 文件描述符​6. Socket​7. 进程资源。

2026-10-02 19:37:11 367

原创 【Linux笔记】Linux库的制作与原理

在 Linux 下以.a为文件后缀,在windows下以.lib为文件后缀。在程序编译链接阶段,库中的目标代码会被完整拷贝到最终的可执行文件中,程序运行时不再需要该库文件。静态库使用的本质就是将 .o 打包的文件原封不动的进行拷贝到需要链接的可执行文件中。静态库遵循固定的命名格式:lib<库名>.a- 开头为: lib- 中间为: 自定义的库名- 末尾为: .a例如:libcalc.a、libmyutil.a假设你的系统上有 100 个程序都调用了printf。

2026-10-02 19:36:48 270

原创 【Linux笔记】Linux虚拟文件系统

1."一切皆文件" 不是设备或数据的存储形式,而是 Linux 用 `open/read/write/close` + 文件描述符 + 树形路径命名空间把磁盘、设备、内核对象、进程信息、IPC通道、网络套接字统一抽象成"可寻址的字节流对象"的架构原则。2. 内核层面的落地方式是 VFS + file_operations 多态表——所有不同的资源都注册 file_operations,被同一套系统调用调度。

2026-10-02 19:35:58 237

原创 【Linux笔记】Linux磁盘文件系统

磁盘怎么变成文件?一文看懂 ext2 与文件系统底层磁盘分 HDD、SSD、SSHD;物理上是盘片、磁头、主轴,存储单位是扇区,逻辑寻址靠 LBA。文件系统在其上建立秩序:用块管理数据,用分区隔离空间,用 inode 分离元数据与内容。以 ext2 为例,分区被划成多个块组,每组包含超级块、组描述符、位图、inode 表和数据块,实现高效分配与回收。文件读写依赖路径逐级解析,dentry 缓存加速查找;挂载让多分区融入统一目录树,存储管理更灵活。

2026-09-30 14:08:40 38

原创 【Linux笔记】Linux基础IO

为什么 fwrite 了,文件却没立刻写进磁盘?文件不只是磁盘上的数据,它连接着应用层与内核层。fopen / fwrite / fread:C 标准 I/O,自带用户缓冲区。open / write / read:系统调用,直接和内核打交道。文件描述符:进程访问文件的通行证。缓冲区:弥合 CPU 与磁盘速度差,减少系统调用开销。刷新机制:自动刷新与手动刷新,决定数据何时真正落盘。通过模拟 glibc 实现,看清用户缓冲区与内核缓冲区如何协作,并揭示重定向、fork 与缓冲刷新之

2026-09-30 14:08:10 81

原创 【Linux笔记】Linux自定义Shell

从零写一个 mini Shell:fork + exec,把命令行跑通

2026-09-30 14:07:35 19

原创 【Linux笔记】Linux环境变量

环境变量与命令行参数:进程启动的两把钥匙环境变量是操作系统给进程的键值对配置,决定运行时上下文。常用命令:env 查看,echo $VAR 展开,export 设置,readonly 锁定,unset 删除;写入 ~/.bashrc 等配置文件即可持久化。在 C/C++ 中,main(int argc, char *argv[]) 接收命令行参数,argv[argc] 必为 NULL;envp[] 则提供环境变量数组,格式为 KEY=VALUE,同样以 NULL 结尾。一句话:argv 管输入,

2026-09-30 14:06:40 109

原创 【Linux笔记】Linux进程控制

Linux 进程管理四重奏:fork、exit、wait、exec

2026-09-30 14:06:13 180

原创 【Linux笔记】Linux进程与守护进程

谁在掌控你的终端?一文看懂进程组、会话与守护进程

2026-09-30 14:05:53 274

原创 【Linux笔记】Linux开发工具

Linux 开发六件套:从装包到调试,一篇打通

2026-09-30 14:05:25 190

原创 【Linux笔记】冯诺依曼体系结构

计算机的底层骨架,叫冯·诺依曼体系:输入、输出、存储、运算器、控制器五大组件协同。它有一条铁律——CPU只直接访问内存。

2026-09-30 14:04:58 102

原创 【Linux笔记】Linux基本指令

本文系统介绍了Linux常用命令与权限管理,全面阐述了Linux命令行核心知识,适用于初学者快速掌握基础操作与系统管理逻辑。

2026-09-30 14:04:08 268

原创 【Linux笔记】Linux进程概念

本文系统阐述了进程的概念、管理机制与核心特性。进程是程序的动态执行实体,由内核控制块(PCB)和程序代码数据构成

2026-09-30 14:03:01 797

原创 【C++笔记】STL详解: priority_queue 的实现

本文通过手撕核心源码,深度剖析了 C++ priority_queue 基于 vector构建最大堆的底层机制、调整算法与容器适配器的设计哲学。

2026-04-22 15:31:13 520 1

原创 【C++笔记】STL详解: priority_queue 的使用

一文揭秘C++ STL优先队列与“黑科技”仿函数,带你从底层堆逻辑玩到高阶复杂结构体排序,轻松解锁代码性能优化的进阶密码!

2026-04-22 15:31:07 372

原创 【C++笔记】STL详解: stack 和 queue 的实现

一文揭秘 C++ STL 的“套壳魔法”:带你手撕源码看 `stack` 与 `queue` 如何化身“包工头”巧妙封装底层容器,用极简接口玩转代码复用的极致艺术!

2026-04-06 15:06:44 440 18

原创 【C++笔记】STL详解: stack 和 queue 的使用

一文带你玩转C++容器适配器双雄:彻底掌握stack与queue的核心玩法与底层替换黑科技,精准避开“queue绝对不能用vector打底”的致命踩坑点!

2026-04-06 14:20:01 673 34

原创 【C++笔记】STL详解:list容器的实现

拒绝黑盒调用!一文带你图文并茂地‘手撕’ C++ STL 双向链表 list 底层源码,从节点架构到神仙级模板迭代器魔法,彻底吃透底层运转核心!

2026-03-28 19:37:11 1293 25

原创 【C++笔记】STL详解:list容器的使用

从 O(1) 极速增删的底层逻辑到迭代器失效的致命暗坑,一文全景解锁 C++ STL list 的实战操作与专属算法,帮你彻底搞清它与 vector 的核心差异与绝佳应用场景!

2026-03-28 19:36:53 1083 15

原创 【C++笔记】STL详解:vector容器的实现

“深入底层源码揭秘三大指针与扩容机制,硬核破解迭代器失效陷阱,一文带你彻底吃透 C++ vector 的核心原理与避坑指南!”

2026-03-28 19:35:35 785 26

原创 【C++笔记】STL详解:vector容器的使用

本文详细介绍了C++ STL中vector容器的核心特性与使用方法。

2026-03-28 19:35:23 1369 21

原创 【C++笔记】STL详解:string的实现

拒绝死记硬背,本文带你从零“手撕”一个全功能的 C++ string 类,硬核拆解深浅拷贝、迭代器与底层扩容机制,一次性通关 C++ 内存管理与造轮子的核心内功!

2026-03-28 19:35:10 1189 22

原创 【C++笔记】STL详解:string的使用

本文超全解析 C++ string 类核心用法,全覆盖对象构造、容量操作、访问遍历、修改操作与非成员函数,搭配丰富代码示例,轻松吃透 string 核心使用技巧!

2026-03-28 19:34:59 599 12

原创 【C++笔记】STL知识铺垫

掌握C++ STL的“万能钥匙”:一文撕开 auto 与范围 for 的语法糖外衣,带你彻底吃透迭代器底层逻辑,解锁高效编程!

2026-03-19 14:58:45 695 24

C语言实战项目:贪吃蛇(2)

贪吃蛇游戏

2025-10-01

空空如也

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

TA关注的人

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