自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 [Linux]进程信号(下)

摘要:现代操作系统是中断驱动的系统,通过中断机制处理外设事件。CPU通过中断向量表查找处理程序,如键盘中断读取输入或硬盘中断处理数据传输。操作系统核心是一个等待和处理中断的循环,时钟中断是实现调度的关键。系统调用通过中断切换用户态和内核态。信号处理需使用可重入函数避免数据冲突,volatile关键字防止编译器优化导致的变量同步问题。

2026-03-06 12:44:17 381 1

原创 [Linux]进程信号(上)

1.信号是操作系统级的“2.信号早在没有产生信号之前就知道怎么处理信号了,操作系统了处理信号的默认方法(一般都是被kill)3.接收到信号可以不立即处理,可以在处理4.信号源有很多。

2026-03-05 20:53:07 505 1

原创 [Linux]进程间通信IPC(system V)

本文介绍了System V IPC机制的核心概念与实现方式。内核通过IPC资源表管理共享内存、消息队列和信号量三类资源,使用key标识唯一性,操作时通过shmget/msgget/semget返回的ID进行访问。详细列举了相关系统调用接口和终端命令(ipcs/ipcrm),并对比分析了三种IPC机制的特性:共享内存具有最高性能但需自行同步;消息队列支持结构化消息;信号量通过P/V操作实现资源访问控制。特别强调了共享内存的页对齐分配特性,以及信号量在保护临界资源时的互斥与同步机制。

2026-03-05 10:49:31 376 1

原创 [Linux]进程间通信IPC(命名管道)

本文对比分析了匿名管道和命名管道的实现机制。匿名管道通过pipe()系统调用直接创建运行态对象,两端共享同一份pipe核心;而命名管道(FIFO)则通过mkfifo创建文件系统节点,在首次open时才会生成运行态pipe结构。两者都使用pipe_inode_info作为核心数据结构,但命名管道具有同步特性:open操作会在两端未同时打开时阻塞。与普通文件不同,FIFO没有数据块且不可seek,本质是内存级通信机制。文章还介绍了相关终端命令和系统调用接口,包括mkfifo、unlink以及open等操作。

2026-03-04 14:55:46 226 1

原创 [Linux]进程间通信IPC(匿名管道与进程池)

本文探讨了进程间通信(IPC)的核心概念与技术实现。通信的本质在于让进程访问"同一份资源",通常由操作系统内核提供和管理。文章详细介绍了匿名管道的实现原理,包括pipe函数的使用、管道特性(如阻塞行为、原子性写入)及四种典型通信情况。特别阐述了进程池的设计,通过Channel和ChannelManager类管理多个子进程,实现任务的均衡分配。代码示例展示了如何使用管道构建进程池,包括任务派发、进程创建与通信等关键环节。整个系统体现了从硬件级到内存级的通信技术演进,以及通过标准化的系统调用

2026-03-03 17:49:12 547 1

原创 [C++]string类的使用和模拟实现

本文系统介绍了C++中string类的使用与实现方法。首先分析了string类的函数风格,包括参数传递方式、const与非const迭代器区别及隐式类型转换特性。然后详细讲解了string类的核心实现,包括构造函数、析构函数、拷贝构造等基础功能,以及迭代器、容量操作等内联函数实现。重点剖析了字符串的增删查改操作,如扩容机制、插入删除算法等实现细节,并指出了常见错误点(如'\0'处理、size_t循环问题)。通过具体代码示例展示了operator>>、insert等关键函数的实现逻辑,帮助读者掌握

2025-12-01 19:24:00 960 1

原创 时间复杂度和空间复杂度

丛结果上看,我们希望我们的程序,占用低,速度快。怎么办呢,上更强的cpu,更大的内存,当然可以实现,但我们希望在同等规模的计算下,同时在相同的硬件配置下,占用低,速度快,就必须优化算法。对于空间复杂度,由于现在存储技术的发展,很容易有大内存,故主要优化时间复杂度。

2025-11-10 14:50:29 312

原创 git企业开发的相关理论(二)

展示了 Git 基本操作流程,包括分支创建、切换、合并及冲突解决等常见操作,以及相关命令的使用方法与结果示例。

2024-12-19 12:09:28 1315 2

原创 git企业开发的相关理论(一)

认识 Git:Git 是一种分布式版本控制系统,用于管理代码版本和团队协作。Git 安装:介绍了如何在不同平台安装 Git。初始化本地仓库:通过 git init 创建一个本地仓库。配置用户信息:使用 git config 设置用户名和邮箱。基本操作流程:工作区、暂存区、版本库的概念。使用 git add 添加文件到暂存区。使用 git commit 提交文件到版本库。使用 git push 推送代码到远程仓库。查看变化:通过 git status 和 git log 查看仓库状态和历史记

2024-12-17 20:47:49 982 3

原创 数据在内存中的存储(超详解)

从大小端顺序到整型,字符型,最后到浮点类型,为大家分享数据在内存中的存储等相关问题。

2024-03-19 13:33:13 1633 34

原创 详解基于快速排序算法的qsort的模拟实现

基于快速排序算法下的qsort的模拟实现

2024-03-19 00:06:29 627 26

原创 字符串函数和内存函数的模拟实现

1.字符串操作:strncpy,strncat2.字符串检验:strlen,strstr3.字符数组操作:memcpy,memmove

2024-03-17 17:26:00 987 40

原创 选择排序,冒泡排序,插入排序,快速排序及其优化

图解四大排序:选择排序,冒泡排序,插入排序,快速排序

2024-02-28 21:43:51 2329 57

原创 函数栈帧的创建及销毁(超详解)

从底层了解函数栈帧的创建及销毁

2024-02-23 21:13:21 2465 32

原创 分享c语言初始化数组简单还实用的四种方法

初识c语言中,不满于每次屏幕打印都是固定值,因为这段代码只能解决那一个问题。我们肯定希望哪怕在release版本中能解决更多相似的问题,这就需要数组的长度在写完代码但运行前都是未定的,并且有些情况需要我们自己指定元素是什么,有些是需要电脑随机生成。

2024-02-17 18:35:38 7834 31

原创 c语言大小写字母转换的三种方法 到 思考指针(超详细)

指针广义上来说,可以不仅仅是十六进制的地址,ASCII中的值又何尝不是一种地址,告诉你ASCII的值就相当于告诉了他的指针,通过指针我们可以找到其对应的字符。对ASCII值(指针)进行加减运算,可以得到另一个指针,对应另一个字符。

2024-02-16 10:40:08 2430 26

原创 笔试中返回函数指针数组的函数(超详解,从零开始)

party先与()结合说明这是一个函数,我们只需要明确party的参数及返回值,括号内自然是参数,然后与*结合,说明是返回一个指针该指针指向为void(**)(const char* name),至于该类型下面调用再讲party(p,"张三")[1][1]("李四");party(p,"张三")看成一个表达式,最终会返回一个类型为void(**)(const char* name)的数据,两个[1]就是解引用这个函数数组,()便是函数调用的意思最后,来一段代码。

2024-02-14 21:54:10 1823 19

原创 c语言循环,迭代与递归背后的思维

循环,迭代,递归与尾递归。思路分享。

2024-02-12 20:46:19 1145 10

原创 从变长数组到两种方法(动态内存与非动态内存)实现数组的动态控制。

在非动态内存方法深入理解scanf函数与gets函数在动态内存方法中感受到malloc函数的威力

2024-02-08 23:35:15 768 10

原创 扫雷c++分板块详解(附源代码及图片素材)

扫雷c++,分板块精讲程序设计

2024-02-08 16:20:25 2297 19

原创 从二进制和内存的底层来探究同一数据在不同类型下的调用

计算机读取数据将其转换成二进制,数字通过“一”转换,字符通过“二”转换。将它赋值给char或是int类型时,其实比较相似,从左(“个位”)到右(“更高位”),只能存储内存之内的数据,超过的部分舍弃,也就是所谓的截断。%d与%c与int,char同理(抽象成模型后是等价的)。

2024-01-05 21:06:48 1275 7

原创 初识c语言:字符常量用int储存,整型常量用char储存会怎样

所谓截断,就是int类型你用char来储存时,由于char是一个字节,而int是int类型,舍弃掉高字节,只保留低字节的数据就是截断。所谓整型提升,就是char类型你用int类型来储存时,由于高字节缺少数据,就会在高字节中自动补充数据,无符号数直接补0,有符号数补充符号数的0或1(二进制)

2024-01-04 23:15:10 1476 11

空空如也

空空如也

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

TA关注的人

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