- 博客(92)
- 收藏
- 关注
原创 【Linux】进程信号(一)信号原理、产生方式、调试技巧(含代码示例)
本文详解 Linux 信号的核心逻辑:信号是 OS 用于事件通知的异步机制,进程有默认、忽略、自定义捕捉三种处理行为。深入剖析信号本质(OS 修改 PCB 信号位图)、四大产生方式(键盘、kill、软件条件、硬件异常),并通过代码示例演示 signal、kill、alarm 等系统调用的使用,最后厘清 Core 与 Term 的核心区别及 core dump 调试场景,帮助读者全面掌握 Linux 信号的原理与实践。
2025-11-19 21:43:07
2145
55
原创 【洛谷】滑动窗口专题 实战指南:4 道经典例题吃透核心逻辑
本文通过 “唯一的雪花”“逛画展” 等 4 道经典例题,从基础去重到复杂窗口变形,详解滑动窗口(同向双指针)的优化原理、判断逻辑及代码实现,解决重复元素、最小窗口、环形结构等常见问题,帮助快速掌握 O (n) 复杂度的枚举优化技巧。
2025-11-19 21:34:28
964
18
原创 【洛谷】差分专题 从一维到二维,模板 + 例题彻底吃透
差分是 “空间换时间” 的经典算法,核心是预处理差分数组实现 O (1) 区间增减操作,与前缀和互为逆运算。本文从一维差分模板切入,结合海底高铁、地毯等经典例题,详解一维 / 二维差分的边界处理、变量溢出等关键细节,配套可直接运行代码,帮算法入门者快速掌握差分实战技巧。
2025-11-15 08:33:49
1086
28
原创 【Linux】进程间通信(四)消息队列、信号量与内核管理ipc资源机制
本文详解 System V 标准下三种 IPC 机制:消息队列(小块数据块通信)、信号量(原子计数器实现同步互斥)、共享内存(高效内存共享),介绍其指令 / 代码接口,剖析临界资源与临界区概念,并揭示内核通过 ipc_id_ary 数组统一管理 IPC 资源的底层逻辑。
2025-11-14 09:14:56
1760
37
原创 【Linux】进程间通信(三)System V 共享内存完全指南:原理、系统调用与 C++ 封装实现
共享内存是物理内存中映射到进程地址空间的一块区域,是最快的 System V IPC 通信方式。本文从原理入手,详解 ftok(键值生成)、shmget(创建 / 获取)、shmat(挂接)、shmdt(解挂)、shmctl(控制 / 删除)等核心系统调用,用 C++ 封装共享内存类,实现服务端(创建 / 删除)与客户端(获取)的进程间字符通信。重点说明其 “生命周期随内核” 特性,以及 “无需系统调用、速度最快” 的优势,同时指出其缺乏同步互斥机制的问题及解决思路。
2025-11-11 18:14:06
1114
30
原创 【Linux】进程间通信(二)命名管道(FIFO)实战指南:从指令操作到面向对象封装的进程间通信实现
本文详解命名管道(FIFO)的原理(基于文件 inode,数据不刷盘)、指令创建与数据传输,重点实现客户端 / 服务端进程通信(含 Makefile 多目标编译优化),并通过面向对象封装解耦核心操作,最终总结其用于无关联进程间通信的核心特点。
2025-11-10 21:39:57
1777
50
原创 【洛谷】前缀和专题 一维到二维前缀和模板精讲与实战
本文聚焦前缀和核心思想 ——“预处理优化时间复杂度”,详解一维 / 二维前缀和的实现模板(下标从 1 开始的原因、递推公式),并结合「最大子段和」「二维前缀和查询」「激光炸弹」等实战题目,拆解前缀和在区间和、矩阵价值计算中的应用,适合算法入门者掌握 “空间换时间” 的预处理思维。
2025-11-10 16:48:47
758
12
原创 【洛谷】枚举专题-二进制枚举 从子集到矩阵问题,经典应用与实现
本文通过「子集」「费解的开关」「EvenParity」三道题,循序渐进讲解二进制枚举的原理与位运算技巧,从基础子集枚举到复杂矩阵递推,附完整 C++ 代码与分步思路解析,助力算法入门者掌握枚举类问题解题逻辑。
2025-11-06 18:18:35
1045
43
原创 【Linux】进程间通信(一)匿名管道原理剖析与进程池手动实现全流程
本文深入解析 Linux 进程间通信中匿名管道的概念、底层原理与特性,结合代码示例完整演示基于匿名管道的进程池实现过程,涵盖技术细节、bug 修复与实践技巧,助力开发者掌握 Linux 进程通信与进程池开发。
2025-11-05 16:12:19
1737
55
原创 【洛谷】枚举专题-普通枚举 经典题解之铺地毯、回文日期、扫雷
本文解析洛谷枚举专题中 “铺地毯”“回文日期”“扫雷” 三道经典题目,讲解普通枚举策略的应用要点(枚举对象、顺序、方式),并给出清晰代码实现,帮助读者掌握枚举算法的暴力与优化思路。
2025-10-31 10:59:10
647
18
原创 【Linux】库制作与原理 从生成使用到 ELF 文件与链接原理解析
本文详细讲解 Linux 环境下动静态库的核心概念(静态库.a/.lib、动态库.so/.dll)、生成步骤(静态库用 ar 打包、动态库用 gcc -fPIC -shared)与使用方法(解决库路径依赖的 4 种方案),并深入剖析 ELF 文件结构(ELF Header、节头表、程序头表)及动静态链接原理(静态链接的地址重定位、动态链接的 GOT/PLT 延迟绑定),帮助开发者理解库的底层逻辑与实操要点。
2025-10-29 18:25:28
1115
59
原创 【洛谷】高精度专题 加减乘除全实现
本文详细讲解高精度加减乘除的 C++ 实现思路,结合洛谷 P1601(加法)、P2142(减法)等题目,拆解 “逆序存储”“进位 / 借位处理”“前导零清除” 等核心步骤,修正代码中数组大小、注释等问题,适合新手掌握大整数计算方法。
2025-10-28 10:37:13
813
29
原创 【Linux】Ext系列文件系统 从磁盘结构到文件存储的原理剖析
本文聚焦 Linux Ext 系列文件系统,从磁盘物理、逻辑结构切入,深入解析 “块”、inode、分区管理、路径解析及软硬链接等底层机制,完整呈现文件在磁盘中的存储与访问逻辑。
2025-10-23 19:05:16
1009
62
原创 【洛谷】模拟专题 多项式、蛇形方阵与字符串展开
本文解析多项式输出、蛇形方阵、字符串的展开三个经典编程题,分别通过分类讨论、方向向量法、函数封装等思路解决问题,附完整代码,助力理解编程中的细节处理与逻辑构建。
2025-10-22 10:54:30
788
28
原创 【洛谷】哈希表实战:5 道经典算法题(unordered_map/set 应用 + 避坑指南)
本文针对 5 道哈希表应用的经典算法题(学籍管理、不重复数字、阅读理解、A-B 数对、CitiesandStatesS),提供完整可运行代码及核心思路解析。核心围绕unordered_map(统计次数、键值对应)、unordered_set(高效去重)、set(有序去重)三大容器,解决 “如何避免超时”“处理数据溢出”“保证输出有序”“避免重复计数” 等关键问题。通过实例讲解哈希表在 “增删改查”“多数据关联” 场景下的应用,帮助新手掌握从 “暴力思路” 到 “O (n) 高效思路” 的转化,规避常见编码坑
2025-10-19 15:11:30
1012
31
原创 【Linux】基础IO(二)深入理解“一切皆文件” 与缓冲区机制:从原理到简易 libc 实现
本文系统讲解 Linux “一切皆文件” 的底层原理(struct file与file_operations的核心作用、VFS 抽象层价值),拆解缓冲区的分类(语言级 / 内核级)、刷新策略(行刷新 / 全刷新 / 强制刷新)及实际应用场景,剖析标准错误与输出重定向的语法和差异,并通过手搓简易 libc 库(实现my_fopen/my_fwrite/my_fclose)巩固 IO 流程,适合 Linux IO 入门者理解核心概念。
2025-10-19 15:11:05
1558
49
原创 【Linux】基础IO(一)Linux 文件操作从入门到实践:系统调用、文件描述符、重定向,为自定义Shell添加重定向
本文从 Linux 文件操作底层逻辑出发,梳理 C 库文件接口与系统调用的关联,解析文件描述符分配规则及内核管理机制,详解重定向本质,并通过完整代码实现支持重定向的自定义 Shell(含cd/echo内建命令),帮助读者理解文件管理原理并掌握实践开发。聚焦 Linux 文件操作核心:先厘清 C 接口(fopen等)与系统调用(open等)的关系,再拆解文件描述符与进程的关联逻辑,讲解重定向原理,最后附自定义 Shell 完整实现,助力快速掌握 “原理 + 实践”。
2025-10-16 21:37:37
1677
53
原创 【Linux】进程控制(三) 自定义 Shell 命令行解释器的实现与进程协作实践
本文围绕 Linux 进程概念与控制知识,详细讲解自定义 Shell 命令行解释器的实现过程,涵盖 “构建代码框架、输出命令行提示符、读取 / 解析用户输入、执行普通命令与内建命令(cd、echo 等)、动态更新环境变量” 等核心步骤,帮助读者深入理解 Shell 运行原理、内建命令机制及环境变量 / 本地变量等概念;同时通过 “子进程备份数据” 的示例,展示父子进程分工协作的编程实践,进一步强化对进程 “写时拷贝” 等底层机制的认知。文中结合 C/C++ 混编、系统调用等技术,为 Linux 编程学习者提
2025-10-13 18:38:02
1609
60
原创 【Linux】进程控制(二) 深入理解进程程序替换与 exec 系列函数
本文围绕 Linux 进程控制中的进程程序替换展开,首先介绍程序替换的背景:fork创建子进程后,若子进程需执行全新程序以成为独立进程,便需要程序替换。接着讲解替换原理 —— 通过系统调用加载磁盘上的新程序(代码 + 数据)到进程地址空间,不创建新进程仅替换执行内容;并结合代码示例演示exec系列函数(execl、execv、execlp、execvp、execle、execvpe)的使用,剖析它们的传参规律与差异,帮助读者全面理解 Linux 进程程序替换的原理、接口与应用。
2025-10-12 21:37:53
1337
45
原创 【洛谷】三题搞定 map 与 set 的经典应用
本文围绕 C++ 中 map 和 set 两种核心 STL 容器,通过「英语作文含金量计算」「营业额最小波动统计」「木材仓库进出货管理」三道经典算法题,拆解容器的实战应用逻辑。文中详细分析每道题的核心需求(如字符串匹配、近值查找、边界处理),结合数据范围与隐含条件推导解题思路,同时针对常见问题(如数据溢出、迭代器越界、重复元素处理)给出解决方案,并附上完整可运行代码。适合刚接触 STL 容器的学习者,通过实例掌握 map 的键值映射特性与 set 的有序去重、近值查找能力,提升算法题的解题效率。
2025-10-11 20:17:08
955
51
原创 【洛谷】6 道题吃透堆的应用:模板堆、第 k 小、最小函数值等全攻略
本文围绕 “堆” 这一基础数据结构,精选 6 道经典算法题(含 Luogu P3378 模板堆、牛客网 TopK 问题、序列合并等),每道题均包含文字版题干、核心思路解析、完整参考代码及关键细节注释。内容从堆的基础实现(向上 / 向下调整),到进阶应用(结构体堆、堆与双向链表结合),覆盖小根堆 / 大根堆选择、TopK 问题优化、单调性质利用等高频考点,适合算法新手巩固堆的原理,或备战算法题时查漏补缺。
2025-10-03 14:51:27
980
59
原创 【Linux】进程控制(一) 进程创建、终止与等待概念与实战讲解
本文围绕 Linux 进程控制的核心环节展开,详细解析进程创建(fork函数的工作原理、写时拷贝技术的作用机制,以及fork的常规用法与调用失败场景)、进程终止(进程退出的不同场景、退出码的含义,以及return、exit、_exit的区别与底层行为)、进程等待(进程等待的必要性、wait与waitpid函数的使用方式、status参数的位图解析逻辑,以及阻塞 / 非阻塞等待的实践方案)。通过原理剖析与代码示例结合,帮助读者全面掌握进程生命周期中的关键操作及其底层逻辑。
2025-10-01 23:07:08
2284
54
原创 【洛谷】二叉树专题全解析:概念、存储、遍历与经典真题实战
本文聚焦洛谷平台二叉树相关算法题,从基础到实战系统拆解二叉树知识体系:首先讲解二叉树的核心概念(满二叉树、完全二叉树的定义与特性);接着剖析二叉树的两种存储方式(顺序存储、链式存储的原理与代码实现);再深入二叉树的遍历算法(DFS 前 / 中 / 后序、BFS 层序遍历的递归 / 非递归实现);最后针对洛谷经典二叉树真题(如 “新二叉树”“求先序排列”“美国血统” 等),结合递归划分、序列匹配、路径推导等思路进行逐题解析,帮助读者构建二叉树算法的思维框架与实战能力。
2025-09-29 15:54:45
1326
37
原创 【Linux】进程概念(六):进程地址空间深度解析:虚拟地址与内存管理的奥秘
本文围绕 Linux 进程地址空间展开系统讲解:首先通过 C++ 代码验证内存空间布局,直观展示代码区、数据区、堆区、栈区等的地址特征;接着以父子进程的实验引入虚拟地址概念,揭示 “相同地址却能存储不同数据” 的本质;随后深入阐述进程地址空间的定义,以及虚拟地址与物理内存通过页表建立映射的机制,并结合写时拷贝技术解释父子进程数据独立性的实现;还介绍了mm_struct(内存描述符)、vm_area_struct等内核数据结构在内存管理中的作用;最后从安全性、内存利用率、模块解耦等角度,剖析虚拟地址空间存在的
2025-09-26 21:41:51
3231
62
原创 【Linux】进程概念(五) 命令行参数与环境变量的深度解析
本文围绕 Linux 进程概念展开,首先结合 C 语言代码示例,详细解析进程中命令行参数(argc/argv)的传递逻辑与获取方式;接着系统讲解环境变量:从现象引入环境变量的核心概念,逐步阐述环境变量的修改、本质与查看方法,深入剖析如何通过代码(main函数、单个环境变量获取函数、environ变量)获取环境变量,同时解读环境变量的来源、作用、全局性特征,以及 “本地变量”“内建命令” 等关联知识点,帮助读者透彻理解进程与命令行参数、环境变量的底层关系。
2025-09-23 20:57:02
1714
61
原创 【Linux】进程概念(四):Linux进程优先级与进程调度的核心逻辑
本文作为 Linux 进程概念系列的第四篇,围绕进程优先级与进程调度展开核心知识讲解。首先阐释进程优先级的本质 —— 它是进程获取系统资源的 “先后顺序规则”(区别于 “权限” 的 “能 / 不能”,优先级解决 “进程多、资源少” 场景下的有序分配问题);进而剖析PRI(进程优先级)与NI(nice 值)的关联,以及进程优先级的查看、修改方法;同时还会解读进程的 “竞争、独立” 特性,厘清 “并行” 与 “并发” 的差异,并深入介绍进程切换机制与 Linux 进程调度策略,助力读者系统掌握 Linux 进程
2025-09-21 12:48:08
1677
39
原创 【Linux】进程概念(三):深入剖析操作系统学科的进程状态理论体系与 Linux 系统下的浅度睡眠、深度睡眠、停止、僵尸、死亡等具体进程状态
先通过 “一次性创建 10 个子进程” 的示例代码展开讲解,并明确创建子进程后,父子进程的运行顺序由操作系统(OS)调度原则决定;接着系统阐述 “操作系统学科层面的进程状态(运行、新建、阻塞、挂起等)”,以及Linux 系统特有的进程状态,包括浅度睡眠状态(S)、深度睡眠状态(D)、停止状态(T 和 t)、僵尸状态(Z)、死亡状态(X),同时补充 “孤儿进程” 等相关概念,助力读者深入理解 Linux 环境下进程的状态与行为逻辑。
2025-09-19 14:11:08
1524
40
原创 【洛谷】算法竞赛中的树结构:形式、存储与遍历全解析
本文围绕算法竞赛中的树结构展开,首先介绍树在竞赛场景下的常见形式,区分有序树与无序树的定义及应用特点;接着详细阐述树的存储方法,重点讲解孩子表示法的两种典型实现(vector 数组实现、链式前向星实现);最后深入分析树的遍历算法,包括深度优先遍历(DFS)、宽度优先遍历(BFS),并剖析二者的时空复杂度。通过对树的形式、存储、遍历的系统梳理,助力竞赛选手夯实树结构基础,更高效地解决竞赛中与树相关的问题。
2025-09-19 07:48:00
893
27
原创 【Linux】进程概念(二):进程查看与 fork 初探
通过 proc 目录与 ps 指令查看进程 + fork 函数创建子进程及 task_struct、代码数据关系和返回值解析
2025-09-15 16:28:43
2327
53
原创 【C++详解】C++11(三) 可变参数模板、包扩展、empalce系列接⼝、新的类功能
可变参数模板、包扩展、empalce系列接⼝、新的类功能
2025-09-02 21:34:58
1036
22
原创 【洛谷】【模板】栈、有效的括号、验证栈序列、后缀表达式、括号序列(stack相关算法题)
【模板】栈、有效的括号、验证栈序列、后缀表达式、(stack相关算法题)
2025-09-01 21:21:14
827
27
原创 【C++详解】用哈希表封装实现myunordered_map和 myunordered_set
用哈希表封装实现myunordered_map和 myunordered_set
2025-08-28 10:11:41
1370
34
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅