自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 Linux下 线程概念与控制(四)以面向对象的方式对线程库进行简单封装

以面向对象的方式对线程库进行了简单封装

2026-06-22 16:52:23 235

原创 Linux下 线程概念与控制(三)用户级线程地址空间布局与平台兼容问题

深入理解 Linux 线程机制,掌握进程与线程在虚拟内存中的布局差异,并厘清用户态原生线程库如何映射内核级轻量级进程(LWP)以实现高效调度!

2026-06-20 19:56:58 237

原创 Linux下 线程概念与控制(二)线程控制

本文介绍了有关线程控制的各个接口函数 并对里面的参数进行了详细的解析

2026-06-19 19:26:28 199

原创 Linux下 线程概念与控制(一)线程概念与综述、分页存储管理

本文讲了线程的概念,Linux下具体的“线程”是什么,与轻量级进程有什么关系,还讲了分页存储管理,最后总结了线程的优缺点有用途!

2026-06-19 00:14:32 211

原创 Linux下 可重入函数、volatile关键字和SIGCHLD信号

讲解了 可重入函数、volatile关键字和SIGCHLD信号等

2026-06-16 21:35:00 249

原创 Linux下 信号的保存与捕捉

理解信号递达、阻塞及捕捉的原理,掌握中断与系统调用机制,并深入认识操作系统运行及异常处理的基本原理。

2026-06-15 21:06:18 226

原创 Linux下 进程信号初识和信号的产生

这篇文章主要介绍了Linux系统中的信号机制,包括信号的基本概念、产生方式以及处理细节。

2026-06-11 21:22:59 187

原创 Linux下 进程间通信详解(二)System V IPC

掌握共享内存的使用,了解消息队列和信号量的基本概念与原理,理解内核管理IPC资源的方式,并学习如何在C语言中通过函数指针等机制实现多态特性。

2026-06-08 23:46:44 227

原创 Linux下 进程间通信详解(一)管道、进程池详解

本次学习围绕 Linux 进程间通信展开,先是系统介绍进程间通信相关基础知识,接着掌握匿名管道与命名管道的原理及实操方法,最后学习编写进程池,同时可借助命名管道完成简易 Linux 进程间聊天室的开发,依托命名管道能突破匿名管道仅亲缘进程通信的限制,实现无关进程间的数据收发,搭建起多进程聊天交互程序。

2026-06-02 21:53:36 265

原创 Linux下 动、静态库的制作、使用与原理和ELF文件解析

本次学习围绕Linux下的动静态库与程序加载机制展开,内容涵盖动静态库的制作与使用、动态库的查找规则、可执行程序的ELF格式解析、程序的完整加载流程,以及虚拟地址空间中动态库的加载与地址无关代码(PIC)、GOT/PLT延迟绑定等核心原理,完整覆盖了从库的构建到程序运行的底层链路。

2026-05-22 23:22:13 503 1

原创 Linux下 Ext系列⽂件系统详解(以Ext2为例 从硬件层到系统层的全方位解析!!!)

本文主要介绍了磁盘与Linux文件系统相关的核心知识点,要求学习者理解磁盘物理结构、掌握CHS和LBA地址、熟悉Ext系列文件系统原理,同时理解分区、格式化、路径解析、挂载等关键操作过程,并掌握软硬链接的使用方法与用途。

2026-05-17 15:56:30 443 2

原创 Linux下 基础IO详解

本部分内容围绕C语言文件IO展开,涵盖C文件IO相关操作的复习、文件相关系统调用接口的认识,以及文件描述符与重定向的理解;通过对比文件描述符fd和FILE结构体,理解系统调用与库函数的关系,同时深入理解文件与内核文件缓冲区、Glibc的IO库,并将所学应用到自定义shell的重定向功能实现中。

2026-05-08 00:22:32 421 1

原创 算法基础详解(七)递归与分治

作者说:我想说 基础 不等于 简单 ;算法能力不是一蹴而就的,而是来自日积月累的积累和练习!积小流终成江海,诸君 加油!!

2026-04-28 15:01:57 449 1

原创 Linux下 进程控制(三) —— ⾃主Shell命令⾏解释器

欢迎来到我的频道码云链接。

2026-04-26 19:33:29 569 1

原创 一文带你吃透八大排序!(C语言超详解版 + 快排三路划分优化加餐 + 工业级自省排序加餐解析!)

欢迎来到我的频道码云连接。

2026-04-23 21:40:48 404 2

原创 Linux下 进程控制(二) —— 进程程序替换

如果你需要。

2026-04-17 21:20:28 437 4

原创 算法基础详解(六)倍增思想与离散化思想

https://www.luogu.com.cn/problem/P1226关于如何解决存不下的问题!这里算是个取模运算的规则 !加法取模(A+B)%MOD=((A%MOD)+(B%MOD))%MOD (A + B) \% MOD = ((A \% MOD) + (B \% MOD)) \% MOD (A+B)%MOD=((A%MOD)+(B%MOD))%MOD乘法取模(A×B)%MOD=((A%MOD)×(B%MOD))%MOD (A \times B) \% MOD = ((A \% MOD) \

2026-04-09 20:50:27 410 1

原创 算法基础详解(五)二分算法——二分查找与二分答案

发现解集中,存在二段性根据待查找区间的中点位置,分析答案会出现在哪一侧;接下来舍弃一半的待查找区间,转而在有答案的区间内继续使用二分算法查找结果。如:定义两个指针left 和 right分别指向解空间的起始位置和终止位置!然后再求一下中点位置mid,假如我要寻找的是2mid指向3那么此时我们就可以舍弃掉这个区间的值!下面我会很细节的讲解该如何找到2的起始位置(3号位置的2)和2的终止位置(5号位置的2)结合上面的图 我们发现初始位置可以划分为小于2 和大于等于2这两个部分。

2026-04-08 21:12:41 389

原创 算法基础详解(4)双指针算法

欢迎来到我的频道作者说:我想说 基础 不等于 简单;算法能力不是一蹴而就的,而是来自日积月累的积累和练习!积小流终成江海,诸君 加油!!

2026-04-06 17:37:10 1048

原创 算法基础详解(三)前缀和与差分算法

欢迎来到我的频道作者说:我想说 基础 不等于 简单;算法能力不是一蹴而就的,而是来自日积月累的积累和练习!积小流终成江海,诸君 加油!!

2026-04-06 00:21:20 414

原创 算法基础详解(二)枚举算法——普通枚举与二进制枚举

关于:(1全变 0全不变)1与任何数字都是0变11变00与任何数字都是0还是01还是1消消乐规则:任何两个相同的数一起是0!关于(0能把1全变成0)1与任何数字都是1不变 0不变0与任何数字都是0不变1变0关于(1能把0全变成1)1与任何数字都是1不变0变10与任何数字都是1不变0不变。

2026-04-04 18:19:13 860

原创 算法基础详解(一)模拟算法与高精度算法

欢迎来到我的频道作者说:我想说 基础 不等于 简单;算法能力不是一蹴而就的,而是来自日积月累的积累和练习!积小流终成江海,诸君 加油!!

2026-04-01 00:26:46 770

原创 与哈希表有关算法题

欢迎来到我的频道。

2026-03-29 16:42:42 309

原创 算法竞赛有关数据结构的补充(3)—— 二叉树、堆和哈希表的静态实现(包括红黑树和AVL树动态实现)

二叉树是一种特殊的树型结构,它的特点是每个结点至多只有 2 棵子树(即二叉树中不存在度大于 2 的结点),并且二叉树的子树有左右之分,其次序不能任意颠倒。二叉的意思是这种树的每一个结点最多只有两个孩子结点。注意这里是最多有两个孩子,也可能没有孩子或者是只有一个孩子。注意:二叉树结点的两个孩子,一个被称为左孩子,一个被称为右孩子。其顺序是固定的,就像人的左手和右手,不能颠倒混淆。⼀棵⼆叉树的所有⾮叶⼦节点都存在左右孩⼦并且所有叶⼦节点都在同⼀层上,那么这棵树就称为满⼆叉树。对一棵树有 n 个结点的二叉树按层

2026-03-27 00:00:04 442

原创 与红黑树有关算法题

对于每一个新来的数 (x),找出之前的数中,大于等于 (x) 的最小值 (y),以及小于等于 (x) 的最大值 (z),也就是距离 (x) 最近的一大一小两个数。那么 (y - x) 与 (x - z) 的最小值就是当天的最小波动值。将 <单词, 含⾦量> 绑定放在 map 中,然后遍历作⽂中的每⼀个字符串,找找 map 中对应单词的含⾦量,累加起来即可。与上题的解法类似,⽤ set 来存储⽊材的信息,每次进货和出货操作都在 set 中进⾏。把所有的最小波动值累加起来即可。

2026-03-26 20:08:45 214

原创 与堆有关算法题

因为所有的函数都是递增的,因此这种策略绝对是正确的。由题意可知,所有的二次函数的 A 和 B 都是大于 0 的,因此在 (x>0) 的区间内,所有函数值都是递增的。所以堆里面需要存一个结构体,标注:函数值 + 哪个函数 + 代入的值,然后按照函数值创建小根堆即可。首先,要经常拿到异性中舞蹈技术差值最小的值,所以考虑到用堆来解决问题,也就是用堆存所有相邻的异性,然后根据技术差建立小根堆。全部放进去,然后每次拿出堆顶元素a[i] + b[j]时,再把 a[I]+b[j+1] 放进去,这样重复n次即可。

2026-03-25 20:20:04 357

原创 与二叉树有关算法题

首先,由于它没有明确说明谁是左右孩子,所以只能用vector数组来存储,里面dfs的递归思想也是很常见,bfs就是用队列模拟找哪一层最多也不解释,最难的两点距离,本质就是求公共的祖先,用一个fa[N]数组存储父亲结点,然后把其中一个结点一直往上遍历直到根结点,然后存储中间遍历的所有结点,然后让另一个结点往上爬,遇到第一个中间遍历过的结点就行了。解释:原后序是 BDCA,去掉根A和左子树B,剩下 DC 对应右子树。⼆叉树的⾼度 = 1 + max(左⼦树的⾼度, 右⼦树的⾼度);因此,可以递归解决。

2026-03-22 16:20:20 372

原创 算法竞赛有关数据结构的补充(2)--- 栈、队列的静态实现和树的实现

树型结构是一类重要的非线性数据结构。有一个特殊的结点,称为根结点,根结点没有前驱结点。除根结点外,其余结点被分成 (M) 个互不相交的集合 (T_1、T_2、…、T_m),其中每一个集合 (T) 又是一棵树,称这棵树为根节点的子树。因此,树是递归定义的。

2026-03-19 21:45:12 412

原创 Linux下 进程控制(一) —— 进程的创建、终止和等待

讲了进程的创建、终止和等待!

2026-03-19 17:45:27 505 1

原创 与队列有关练习题

先来的乘客,在时间逐渐增大的时候会先出列。因此,可以用队列模拟整个过程。直接按照静态队列的实现方式进行模拟即可!类型的数组,快速判断元素是否在队列中。创建一个队列,模拟整个流程。

2026-03-16 20:40:51 253 1

原创 与栈有关的算法题

后缀表达式(Postfix Expression),也称为逆波兰表达式(Reverse Polish Notation, RPN),是一种将运算符写在操作数之后的数学表达式表示法。一直让元素进栈,进栈的同时判断是否需要出栈。当所有元素模拟完毕之后,如果栈中还有元素,那么就是一个非法的序列。模拟结束之后,把未匹配位置的左括号,添上一个相应的右括号。⽤栈模拟后缀表达式的计算过程。类型的数组标记哪些位置可以匹配,哪些位置不可以匹配。先用栈模拟一遍括号匹配的过程,同时用一个。用栈来模拟进出栈的流程。

2026-03-14 16:35:10 249

原创 与链表有关的算法题

而 STL 里面的 list 的底层就是动态实现的双向循环链表,增删会涉及 new 和 delete,效率不高,竞赛中一般不会使用,而是以静态实现的方式。本题相当于告诉了我们每一个点的后继,使用静态链表的存储方式能够很好的还原这个队列。次就删除后面的元素 (比如给的测试样例是每走3次删一个元素,我们每数2次就删除它后面的元素),这是因为单链表删除有个关键的步骤是。使⽤循环链表模拟即可!频繁的在某⼀个位置之前和之后插⼊元素,因此可以⽤双向循环的链表来模拟。关于链表的静态实现 可以参考我写的博客。

2026-03-12 18:16:04 167

原创 Linux下 进程(六)(程序地址空间)

介绍了虚拟地址空间!

2026-03-11 15:25:13 445 3

原创 算法竞赛有关数据结构的补充---顺序表、单、双向链表的静态实现

在算法竞赛中,我们主要关⼼的其实是时间开销,空间上是基本够⽤的。因此,定义⼀个超⼤的静态数组来解决问题是完全可以接受的。因此,关于顺序表,采⽤的就是静态实现的⽅式。当然顺序看着比较简单 我再插入一个C 把D插到BC中间。解法⼆:如果存储的值数据范围不⼤,可以⽤哈希表优化。直接⽆视 prev 数组,与单链表的遍历⽅式⼀致。根据之前的经验可知,最后修改p的前驱指针即可。直接使⽤ mp 数组优化了。解法⼀:遍历整个链表即可。

2026-03-09 19:32:23 199

原创 与vector容器有关练习题

vector的使用。

2026-03-08 17:56:56 395

原创 Linux下 进程(五)(命令⾏参数和环境变量)

函数能不能有参数?部分说明Argument Count:命令行参数的个数(包括程序名本身)Argument Vector:一个字符串数组,每个元素是一个命令行参数1.2 为什么要有看个例子就明白了:💡:命令行参数的本质应用,是为了实现一个命令,可以根据不同的选项,实现不同的子功能!也是Linux中所有命令选项功能的实现方式!!!环境变量()一般是指在操作系统中用来指定操作系统运行环境的一些参数,属于系统级别的变量,变量名和变量内容,往往具有全局性!在我们日

2026-02-11 20:29:36 1278

原创 Linux下 进程(四)(进程的组织、进程的切换和进程O(1)调度算法)

欢迎来到我的频道码云链接。

2026-02-09 07:45:31 891

原创 Linux下 进程(三)(进程的优先级)

欢迎来到我的频道码云链接。

2026-02-09 02:07:14 973

原创 Linux下 进程(二)(进程状态、僵尸进程和孤儿进程)

欢迎来到我的频道码云链接。

2026-02-08 20:35:01 634 1

原创 Linux下 进程(一)(冯诺依曼体系、操作系统、进程基本概念与基本操作)

欢迎来到我的频道码云链接。

2026-02-04 08:58:28 978 2

空空如也

空空如也

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

TA关注的人

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