自定义博客皮肤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基础IO深度解析(2)

本文摘要: 本文系统讲解了Linux系统编程中的文件I/O操作,主要包含以下内容:1) 文件描述符与FILE指针的转换方法(fdopen/fileno);2) 标准I/O库的三种缓冲模式及控制函数;3) 文件定位操作(lseek/fseek);4) I/O重定向实现(dup/dup2);5) 阻塞与非阻塞I/O模式设置;6) 通过两个完整示例(系统调用版和标准I/O版)演示文件复制程序的实现。文章最后总结了核心知识点、设计思想和实践建议,特别强调了返回值检查、资源管理和缓冲区优化的重要性,为Linux系统编

2026-06-09 23:34:26 213 1

原创 Linux基础IO深度解析

本文系统介绍了Linux系统中的I/O操作,分为系统调用和标准库两个层次。核心内容包括:1)I/O的本质与层次结构,Linux通过设备抽象和统一接口简化开发;2)文件描述符的概念与分配规则,作为索引定位资源;3)系统调用I/O函数(open/read/write/close)的详细使用方法和注意事项;4)标准I/O库函数(fopen/fread/fwrite/fclose)及其缓冲优化机制,对比了与系统调用的区别。文章通过代码示例演示各函数的实际应用,并分析常见错误场景,为开发者提供全面的I/O操作指南。

2026-06-09 23:32:20 431

原创 C语言数据在内存中的存储深度解析

本文系统介绍了C语言中数据存储的核心原理与实践方法。主要内容包括:1. 内存区域划分(栈、堆、全局/静态区、常量区)及其设计思想;2. 基本数据类型存储方式及大小端检测;3. 整型数据的补码表示和浮点数的IEEE754标准;4. 结构体内存对齐原则和共用体的共享特性;5. 指针本质与内存地址操作。文章通过代码示例演示了变量内存布局的查看方法,并总结了分层管理、效率优先等底层设计思想。最后提出掌握内存布局对程序调试和优化的重要性,强调要注意结构体对齐、指针运算和浮点精度等问题。

2026-06-08 23:48:34 196

原创 Linux进程控制保姆级介绍:理论与实战

本文深入解析Linux进程控制机制,从设计思想到实践应用全面剖析。主要内容包括:1)进程控制的核心原理,包括fork()的写时复制机制和exec()的进程复用思想;2)进程生命周期管理,涵盖创建、执行、终止和状态转换;3)进程间关系和调度策略;4)实践指导,提供简易Shell实现代码和守护进程创建步骤。文章强调进程控制体现的三大设计思想:资源抽象与隔离、分层设计和并发控制,并给出避免僵尸进程等实践建议。通过理论结合代码示例,帮助读者掌握Linux进程管理的核心技术。

2026-06-08 23:34:21 282

原创 C++类和对象

• class为定义类的关键字,Stack为类的名字,{}中为类的主体,注意类定义结束时后⾯分号不能省 略。类体中内容称为类的成员:类中的变量称为类的属性或成员变量;类中的函数称为类的⽅法或 者成员函数。• 为了区分成员变量,⼀般习惯上成员变量会加⼀个特殊标识• C++中struct也可以定义类,C++兼容C中struct的⽤法,同时struct升级成了类,明显的变化是 struct中可以定义函数,⼀般情况下我们还是推荐⽤class定义类。• 定义在类⾯的成员函数默认为inline。

2026-06-07 20:52:07 236 1

原创 从0开始掌握Linux进程(3)

本文摘要围绕Linux进程管理与内存机制展开,主要内容包括:1.环境变量管理,详述PATH等变量的配置方法及进程继承特性;2.虚拟地址空间原理,通过实验验证地址分布规律,分析fork后的写时拷贝机制;3.进程核心概念体系,涵盖PCB结构、调度优先级、内存映射(mm_struct)及进程生命周期管理;4.系统设计哲学,强调"描述+组织"的统一管理模式在硬件、进程、文件等资源管理中的应用。文章通过代码实例演示环境变量操作和地址空间验证,最后给出调试命令和内核研究建议,揭示从冯诺依曼体系到现代

2026-06-07 20:51:16 353 1

原创 从0开始了掌握Linux进程(2)

本文摘要: 本文系统介绍了进程管理的核心机制,包括:1)进程状态设计(Linux的7种状态),重点分析了僵尸进程的成因与预防;2)进程优先级机制(PRI与NI的关系)及调度策略;3)进程上下文切换原理与Linux的O(1)调度算法实现。通过代码示例展示了僵尸进程/孤儿进程的产生过程,并提供了优先级调整方法。全文以Linux系统为例,深入剖析了多进程环境下CPU资源分配、状态转换和高效调度的实现原理,涵盖从理论到实践的关键技术细节。

2026-06-06 21:08:13 338

原创 从0开始掌握Linux进程(1)

本文摘要:文章系统介绍了计算机系统中进程运行的三大基础。首先解析冯诺依曼体系作为物理基础,重点说明其核心组成(输入设备、存储器、CPU、输出设备)和数据流特点。其次阐述操作系统的管理者角色,通过描述(struct)和组织(链表)实现对硬件和进程的管理。最后详细讲解进程概念,包括进程控制块(PCB/task_struct)、进程查看方法以及fork创建进程的核心机制,特别强调fork的写时拷贝特性和双返回值特点。全文从硬件架构到系统管理再到进程实现,构建了理解进程运行的完整知识框架。

2026-06-06 21:03:13 353

原创 C++内存管理

C++内存划分包括栈(向下增长)、堆(向上增长)、数据段(全局/静态数据)、代码段(可执行代码)和内存映射段(进程通信)。C++通过new/delete管理动态内存,相比C的malloc/free有以下优势:1)自动计算空间大小;2)支持初始化;3)对自定义类型会自动调用构造/析构函数;4)失败时抛出异常而非返回NULL。new/delete实现原理:对内置类型类似malloc/free,但对自定义类型会通过operator new申请空间并调用构造函数,delete会先调用析构函数再释放空间。使用时需注意

2026-05-11 20:36:00 350

原创 类的默认成员函数:构造函数,析构函数,拷贝构造

传值传参的本质

2026-05-10 21:35:14 389

原创 深入解析Linux权限体系:从基础规则到安全实践

2. w(写):可修改目录的结构,包括创建新文件/子目录、删除已有文件/子目录、重命名文件/目录、移动目录内资源。关键要点:目录的w权限优先级高于文件自身权限,即使文件权限为 --- ,只要所在目录有w权限,即可删除该文件。在Linux系统中,普通用户仅能操作自身权限范围内的资源,涉及系统核心配置(如修改系统文件、安装软件)时,需借助sudo命令获取临时超级用户(root)权限,这是权限体系的重要补充。1. 所有者(User,缩写u):创建文件/目录的用户,拥有该资源的最高权限,可自主分配读写执行权限。

2026-04-22 20:38:00 237

原创 流(stream)和 Shell(外壳)本质是同一个思想在两个不同层次的投影。

I/O 就是字节的流动(stream of bytes):有序、连续、以 EOF 结束。不管读键盘还是读文件:都是顺序读字节。不管写屏幕还是写磁盘:都是顺序写字节。程序不需要知道背后是啥设备。这是 “流” 思想的源头用统一的字节流模型,消灭设备差异。流(stream)是程序与数据来源 / 目的地之间的逻辑通道以 FILE表示*,屏蔽设备细节,只提供字节序列读写。输入流:数据从外部 → 程序。输出流:数据从程序 → 外部。标准流(程序启动自动打开):stdin(标准输入,默认键盘)

2026-04-14 20:45:00 372

原创 const 成员函数——权限放大与缩小

const 对象只能调用const 成员函数→ 只读 → 只读(安全)非 const 对象可以调用const 成员函数→ 可读可写 → 只读(权限缩小 ✅)const 对象 不能调用 非 const 成员函数→ 只读 → 可读可写(权限放大 ❌)

2026-03-24 17:16:29 28

原创 C++基础知识(有C语言的基础)

C++语言特性摘要:作为C语言的扩展,C++在保持高效性的基础上引入了面向对象编程范式。核心特性包括:1)命名空间(namespace)解决标识符冲突问题;2)引用机制(引用传参和引用返回)减少拷贝开销;3)函数重载支持同名函数根据参数类型/数量进行区分;4)缺省参数(全缺省和半缺省)提供函数调用灵活性。这些特性增强了代码的组织性、安全性和复用性,使C++更适合开发大型程序。标准库组件如<iostream>提供了更方便的流式输入输出功能。

2026-03-15 21:57:22 774

原创 const修饰指针

修饰指针变量本身 → 指针的指向(地址)不可变,但指针指向的对象内容可变。修饰指针指向的对象 → 指针的指向可改,但指向的对象内容不可变。修饰指针有两个核心场景,关键看。

2026-03-15 21:55:12 30

原创 C语言核心内存函数详解:memcpy、memmove、memset、memcmp

本文解析了C语言中四个核心内存操作函数:memcpy、memmove、memset和memcmp。memcpy用于非重叠内存的高效拷贝;memmove在拷贝时能处理内存重叠;memset用于内存批量初始化或清零;memcmp则进行精确的字节级比较。关键注意事项包括:正确计算字节数、区分内存重叠场景、注意memset的单字节限制以及memcmp的严格比较特性。这些函数摆脱了数据类型限制,是C语言内存操作的基石,使用时需明确各函数的适用场景和限制条件。

2025-12-15 19:57:09 1181

原创 C语言字符与字符串函数核心知识点解析

摘要:C语言标准库提供了丰富的字符和字符串处理函数。字符处理函数(<ctype.h>)包括字符分类函数(如isalpha()、isdigit())和转换函数(如toupper())。字符串函数(<string.h>)涵盖常用操作:strlen()计算长度,strcpy()/strncpy()实现拷贝,strcat()/strncat()进行拼接,strcmp()/strncmp()比较字符串,strstr()查找子串,strtok()分割字符串。使用时需注意:字符串必须以'\0'结尾

2025-12-14 17:26:13 1156 2

原创 为什么顺序表的插入(如尾插)函数中,形参传递的是「顺序表结构体的一级指针」,而链表的插入(如尾插)函数中,形参需要传递「头指针的二级指针」?

这些都是「结构体内部的成员」,而非「结构体变量ps本身的地址」——只要拿到结构体的地址(一级指针ps),就能通过 ps->成员名 直接修改,无需二级指针。但顺序表中修改的是「结构体内部的成员(arr指针)」,而非「结构体变量本身的地址」——用一级指针SL ps就能访问并修改结构体成员,无需二级指针 *。- 形参用一级指针 int* arr ,本质是传递数组的起始地址,函数内通过该地址访问/修改数组元素,无需修改“地址本身”,因此一级指针足够。- 结构体SL是“容器”, ps 是指向这个容器的一级指针;

2025-12-02 17:13:34 296 2

原创 如何让判断程序接受多组数据去分别判断

该程序通过while循环实现多组三角形边长的连续判断。用户输入三个整数(输入000结束),程序会先计算三条边的总和与最大值,然后通过"两边之和大于第三边"原则判断能否构成三角形。若能构成,则进一步判断类型:等边三角形(三边相等)、等腰三角形(两边相等)或普通三角形(三边不等)。若不能构成三角形,则直接输出提示。程序会持续运行,直到用户输入三个0时自动退出并显示"程序结束"。

2025-09-26 22:59:35 429 2

原创 scanf(scanf_s)读取整数的核心原理

一开始我的输入是紧挨着的比如我想比较3,4,5这几个数的大小我就直接输入了345,此时按回车没有反应,程序还要我继续输入,在我输入3之后按回车再输入4再按回车再输入5此时再按回车,在下一行给我正确的把三个数按大小排列了。②匹配数字序列:从非空白字符开始,连续读取所有 “0-9 的数字”(正负号也会被识别,比如-123),直到遇到第一个 “非数字字符”(比如字母、空格、换行),才停止解析,并将读取到的数字序列转换为整数存入变量。输入 3 4 5 → 用空格分隔,按回车后,a=3、b=4、c=5。

2025-09-26 13:30:29 553 1

原创 scanf中取址符

在 scanf 函数中,当需要读取数据并存储到变量中时,几乎总是需要使用取址符 &。这是因为 scanf 需要知道变量在内存中的地址,才能将读取到的数据正确写入该变量。2.字符串(字符数组)不需要使用 &3.指针变量视情况而定。

2025-09-24 23:07:47 323

原创 三角形判断

三角形的正确判定条件是“任意两边之和大于第三边”,而代码中仅通过“两个较小边之和( min2 )> 最大边( Max )”判断,看似等价,但未处理边长为非正数的情况。1.等腰三角形三个边之间的关系并且注意要与等边三角形三边的关系不能重合,因为要在我们的输出中若三边关系满足等边三角形则输出为等边三角形(尽管也为等腰三角形)解决浮点数直接用 == 比较的问题,核心是不判断“相等”,而是判断“差值在允许的极小精度范围内”,因为浮点数的误差通常远小于这个精度值。2.为了简单,数据类型都是int,未涉及小数部分。

2025-09-18 13:00:48 367 1

空空如也

空空如也

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

TA关注的人

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