- 博客(46)
- 收藏
- 关注
原创 【Linux】进程等待:wait/waitpid 与僵尸进程治理
wait 函数是 Linux 系统中一类进程控制函数,其作用是让父进程以阻塞方式等待任意一个子进程终止(不支持指定等待子进程),同时完成该子进程的资源回收与退出状态获取成功返回被等待进程 pid,失败返回 - 1。输出型参数,获取子进程退出状态,不关心则可以设置成为 NULL场景1:wait等待单个子进程(仅回收资源,不关心退出状态)#include <stdio.h> // printf、perror 函数所需。
2026-01-07 15:35:44
1001
63
原创 string 类算法实战:面试必练的经典题型与解题思路
本文整理了C++中string容器的经典编程题型,涵盖字符串反转、数值运算、回文验证等常见操作。通过双指针、边界处理等核心技巧,详细解析了包括字符串转整数、字符串相加/相乘、仅反转字母、查找唯一字符、验证回文串等10个典型问题的解题思路和代码实现。这些题目虽无统一规律,但通过逐题分析可掌握string的基本操作和不同场景的应用方法,为处理各类字符串问题提供实用参考。文章包含完整代码示例和关键步骤图解,适合巩固基础并拓展编程思维。
2026-01-04 20:31:55
1128
72
原创 认识测试:岗位分类、开发差异与必备素质
本文系统介绍了软件测试的基本概念与行业认知。从生活中的测试场景切入,阐述了测试的定义及其保障企业盈利的核心价值。详细解析了测试开发工程师与测试工程师两大岗位方向的差异,对比了测试与开发在技能要求、工作内容等方面的区别。同时归纳了优秀测试人员所需的综合能力、专业技能和职业素养,包括沟通表达、自动化测试技术、探索性思维等核心素质。文章还提供了"为何选择测试岗"等高频面试题的应对思路,帮助读者建立完整的测试认知框架,为职业选择提供参考。
2026-01-01 12:08:31
976
93
原创 【Linux】Linux指令进阶:从入门到熟练的实操指南
本文系统介绍了Linux常用指令操作,分为八大类:1.输入输出指令(cat/echo/重定向)2.大文件查看指令(more/less/head/tail)3.时间指令(date/cal)4.文件查找指令(find/grep)5.打包压缩指令(zip/unzip/tar)6.其他实用指令(bc/uname)7.热键操作(Tab/Ctrl组合键)8.关机指令。文章详细讲解了各指令的语法、功能、常用选项及实际应用示例,特别强调Linux"一切皆文件"的设计理念。适合Linux初学者系统学习基础
2025-12-30 23:11:58
2260
45
原创 【Linux】Linux 初探:历史溯源与常用指令速览
Linux操作系统从军事需求到开源生态的发展历程,详细讲解基础概念和30多个常用指令的语法功能,适合初学者系统学习和日常参考。
2025-12-30 11:30:52
2447
64
原创 别再翻手册了:str/men 接口的 “使用说明书”
在 C 语言的开发场景里,“字符串操作” 与 “内存管理” 是绕不开的核心基础 —— 小到简单的字符串拼接、长度统计,大到复杂的数据拷贝、内存比较,都依赖。
2025-12-29 20:18:38
1034
60
原创 链式存储范式下的二叉树:基础操作实现解析
二叉树是数据结构中的基础核心结构,其操作覆盖创建、遍历、属性统计、结构判断等关键场景。本文围绕二叉树的。
2025-12-28 23:39:46
725
64
原创 【Linux】从 fork 到进程终止:写时拷贝细节与常见退出方式
在 Linux 系统编程中,fork()是进程管理领域的核心系统调用 —— 它以已运行的进程(父进程)为模板,创建一个全新的子进程。子进程会继承父进程的绝大多数资源(包括代码段、数据段、文件描述符、环境变量等),但二者是相互独立的进程实体;fork()调用的特殊之处在于 “调用一次,返回两次”:父进程会得到子进程的 PID(进程 ID,非负整数),子进程则返回 0,程序会从fork()调用处开始,父子进程各自独立执行后续逻辑。返回值:自进程中返回0,父进程返回子进程id,出错返回-1返回值所属进程。
2025-12-27 15:37:38
1734
58
原创 【Linux】进程地址空间
进程地址空间是操作系统为每个进程虚拟出来的、独立的内存地址范围(比如 32 位系统中通常是 0~4GB),它让进程以为自己独占了内存,但实际是操作系统通过 “虚拟地址→物理地址” 的映射来管理真实内存。
2025-12-25 09:55:07
1423
51
原创 GLM-4.7 & MiniMax M2.1 实测上线:AI Ping 喊你免费体验国产大模型 “硬实力
这篇文章围绕GLM-4.7、MiniMax M2.1两款国产大模型及AI Ping平台的支持能力。
2025-12-24 18:05:21
722
11
原创 聊聊 C 里的进制转换、移位操作与算术转换
进制转换类型基数位权规则(从右往左,第 k 位)核心计算方式二进制→十进制22^(k-1)每位 ×2ⁿ 相加八进制→十进制88^(k-1)每位 ×8ⁿ 相加十六进制→十进制1616^(k-1)每位 ×16ⁿ 相加。
2025-12-21 23:38:36
730
39
原创 数据结构堆的深度解析:为什么它是高效处理最值问题的利器
看着像一棵 “层层填满、最后一层靠左排” 的树(完全二叉树),但实际是存在连续数组里的;有个铁规矩:要么每个节点都比自己的子节点大/相等(这叫大根堆,最顶上的是最大的数),要么每个节点都比自己的子节点小/相等(这叫小根堆,最顶上的是最小的数);核心用处就是快速找最大 / 最小数,不用挨个遍历,直接拿最顶上的就行。
2025-12-19 17:03:49
991
65
原创 深度剖析 C++ string:从 0 到 1 的模拟实现与细节解析
string是 C++ 中最常用的字符串工具,但多数人只懂用、不懂其底层逻辑。这篇会带你string:从内存管理的构造 / 析构,到深拷贝的拷贝构造 / 赋值重载,再到基础接口封装,帮你吃透string的核心机制,同时掌握 C++ 类设计的关键思路。📚 C++ 初阶。
2025-12-17 20:09:03
1295
69
原创 【Linux】进程调度算法、进程切换、环境变量
针对你之前写到~/.bashrc里的,操作步骤:# 用vim打开~/.bashrc# 操作步骤:# 1. 按G跳到文件最后一行# 2. 找到你添加的export MYENV="hello world"这一行# 3. 按dd删除该行(或在行首加#注释掉)# 4. 按ESC → 输入:wq 保存退出# 刷新当前终端的配置(立即永久取消,不想用该指令重新打开终端也会生效)# 验证:无论当前终端/新终端,echo $MYENV 都为空echo $MYENV # 输出空。
2025-12-13 16:18:03
2153
68
原创 C++ 字符串处理利器:STL string 保姆级入门教程
本文系统介绍了C++中string类的核心用法。string是处理字符串的高效工具,相比C风格字符串更安全易用。主要内容包括:1. string的多种构造方式,如子串构造、重复字符填充等;2. 字符串访问和遍历方法,包括[]操作符和迭代器;3. 容量管理操作,如size、capacity、reserve和resize;4. 常用修改操作,如append、find、substr等;5. 不同编译器下string的实现差异,如VS采用固定大小结构,g++使用写时拷贝。文章通过实际案例演示了string的典型应用
2025-12-10 17:12:25
1814
86
原创 栈 & 队列:面试题(括号 / 循环队列)+ 概念题,全考点覆盖
-----------初阶数据结构-----------/谁学数据结构没被栈和队列 “折磨” 过?面试要写括号匹配、用栈造队列,选择题还得算循环队列长度、辨出栈序列 —— 既要敲代码又要抠概念,主打一个 “全方位考察”。这篇直接端上 4 道面试题 + 5 道选择题,解法 + 坑点 + 考点一次性捋顺,主打一个 “练完少踩坑”。
2025-12-06 13:53:44
948
35
原创 【C++ 】模板初阶:从 “重复造轮子” 到通用代码的第一
class 类名// 类成员定义(成员变量、成员函数可使用模板参数)【示例】:通用栈类public:// 构造函数// 成员函数声明void Pop();// 存储数据的数组(类型为模板参数T)// 栈容量// 栈中元素个数// 扩容逻辑(简化版)_size--;
2025-12-03 22:27:53
1319
63
原创 【Linux】进程优先级:谁先 “上车” 谁说了算
本文深入解析Linux进程优先级管理机制。首先介绍了侵入式链表在PCB管理中的优势:通过偏移量计算实现高效结构体访问,支持动态增删和灵活调度。然后详细讲解进程优先级概念(PRI)和nice值(NI)的作用机制,包括查看方法(ps -l命令)和调整方式(top命令修改nice值)。文章还区分了UID(用户标识)和PID(进程标识)的不同用途,并分析了进程的四种特性:竞争性(通过优先级调度资源)、独立性(进程间资源隔离)、并行(多CPU同时执行)和并发(单CPU分时执行)。最后说明了nice值的调整范围和限制(
2025-12-02 08:29:45
1699
89
原创 【数据结构】栈与队列:定义、核心操作与代码解析
栈和队列是数据结构的“入门基石”,它们的核心价值并非复杂的结构,而是通过限制操作顺序,为问题提供清晰、高效的解决思路栈的LIFO特性,适合处理“需要回溯”或“逆序处理”的场景,所有操作聚焦栈顶,时间复杂度均为O(1)。队列的FIFO特性,适合处理“需要顺序执行”或“分层遍历”的场景,两端操作同样保证O(1)的高效性能。实现选择上,数组实现高效紧凑,链表实现动态灵活,需根据实际需求(容量确定性、空间开销)权衡。
2025-11-30 22:45:24
1506
66
原创 【Linux】Linux进程状态深度解析
进程状态是操作系统内核对进程当前活动与执行状态的描述,是内核调度资源的管理依据。它既反映进程的实时状态(如是否在使用 CPU、是否等待硬件 / 文件资源、是否被暂停),也帮助内核判断如何高效分配 CPU 等系统资源,是进程管理的核心基础之一。
2025-11-27 22:02:31
1971
68
原创 【C++】C/C++ 内存管理从入门到进阶
📋 本文围绕 C/C++ 内存管理核心知识点,从分区、分配机制、实战对比到避坑技巧,帮开发者系统性掌握精髓,规避内存泄漏等常见问题。
2025-11-22 17:04:33
1277
47
原创 【Linux】进程深度剖析:从概念到 fork 函数应用
课本说法进程是 “程序的一个执行实例”,或者 “正在执行的程序内核视角进程是操作系统分配资源(CPU 时间、内存)的基本单位—— 系统给谁分资源?就是给进程分。3、进程的组成结构进程PCB(进程控制块)程序的代码&数据系统分配的独立资源【拆解一下】:就是你写的程序逻辑(比如 C++ 的main()函数)和要处理的变量 / 对象;核心是内存(分成代码段、数据段、栈、堆等区域),还包括CPU 时间片、打开的文件句柄等;这是进程的 “身份证”,下面重点讲它。这三者不是孤立的 ——
2025-11-21 13:25:47
2067
108
原创 类和对象(下):初始化列表、静态成员与友元深度解析
在 C++ 面向对象编程中,类和对象是核心基石。除了基础的类定义与对象创建,构造函数的进阶用法、静态成员的共享机制、友元的封装突破以及内部类的设计技巧,直接决定了代码的优雅度与效率。本文将结合实例,深入拆解这些关键知识点,帮你彻底掌握类和对象的进阶应用。🚀📋 其他专栏:<> 、<> 、<
2025-11-17 19:59:53
1291
68
原创 【Linux】冯诺依曼体系结构与操作系统概述
本文以Linux为切入点,深入解析冯诺依曼体系结构与操作系统。首先介绍冯诺依曼体系五大核心部件及数据流动机制,剖析内存作为缓冲层解决CPU与I/O速度差的设计意义。随后阐释操作系统作为管理软件的分层架构,揭示其通过"结构体描述+数据结构组织"实现软硬件资源管理的本质。文章还探讨了驱动层作为软硬件桥梁的关键作用,以及系统调用与库函数的层次关系。通过分析QQ聊天数据流等实例,展现了计算机系统从底层硬件到上层应用的完整运作逻辑,为读者理解计算机体系结构提供了系统性的技术框架。
2025-11-15 18:28:54
2697
84
原创 C++ 日期类接口实现与 const 成员函数深度解析:this 指针的只读约束
本文详细讲解了C++类和对象的中高级应用,主要包括:1. const成员函数的使用场景和权限控制;2. 日期类的默认成员函数实现;3. 日期加减天数的实现技巧,建议先实现+=再复用实现+;4. 日期比较运算符的重载方法;5. 两种日期差计算算法的时间复杂度分析;6. 流插入(<<)和流提取(>>)运算符的重载实现。文章通过具体代码示例展示了如何高效实现日期类的各种功能,并分析了不同实现方式的优缺点。
2025-11-11 21:40:51
1230
43
原创 【Linux】从版本控制到代码调试:Git 入门与 GDB 调试器学习指南
Git 是一款分布式版本控制系统,可以理解为代码的 “时光机”—— 它能记录代码的每一次修改,让你随时回退到历史版本,还能支持多人协作开发。和传统的 SVN(svm只能通过服务端查看历史记录) 相比,Git 是 “客户端 - 服务端一体” 的设计,既可以本地单机管理代码,也能通过远程仓库(如 GitHub、Gitee)实现团队协作。
2025-11-08 13:39:17
1133
60
原创 类和对象(中):深入理解 C++ 类与对象:6 个默认成员函数核心解析
如果一个类中什么成员都没写(空类),编译器会自动生成 6 个默认成员函数。它们的核心作用是处理对象的 “初始化、清理、拷贝、赋值、取地址” 等基础操作。。空类函数类型核心作用显式实现场景构造函数对象创建时初始化需自定义初始化逻辑(如日期)析构函数对象销毁时清理资源类内有动态内存(如栈、链表)拷贝构造函数用已有对象创建新对象(涉及资源拷贝(避免浅拷贝)赋值运算符重载对象间赋值(d2 = d1涉及资源赋值(避免浅拷贝)普通取地址重载获取普通对象地址几乎不用(默认足够)
2025-11-04 22:08:16
1396
34
原创 【Linux】Linux第一个小程序 - 进度条
本文介绍了在Linux环境下实现进度条程序的方法。首先讲解了回车(\r)和换行(\n)的区别以及缓冲区的作用机制,然后通过一个倒计时示例演示了动态刷新显示的技术要点。接着详细讲解了进度条的实现过程,包括使用Makefile构建、数组越界控制、旋转光标效果等。最后展示了进度条在下载场景下的应用,通过回调函数实现多次下载进度显示。程序利用printf、fflush等函数实现动态刷新,并加入usleep控制进度节奏,完整呈现了Linux下进度条的实现原理和应用方法。
2025-11-02 15:13:20
2816
86
原创 类与对象(上):面向过程到面向对象的跨越,类的定义、封装与 this 指针等核心概念深度剖析
/ 类体:由成员函数和成员变量组成//分号不能丢定义类有两种写法,关键看 “成员函数的定义位置”,实际开发中要根据场景选。成员函数直接在类内实现,编译器可能会把它当成内联函数public:// 成员函数:类内定义(可能被视为内联)// 成员变量// 姓名char* _sex;// 性别int _age;// 年龄类的声明放在头文件(如person.h),成员函数的实现放在源文件(如person.cpp)—— 这是大型项目的标准写法,避免重复包含和编译错误。【person.h(声明)】
2025-11-01 22:50:32
1430
53
原创 【优选算法・双指针】以 O (n) 复杂度重构数组操作:从暴力遍历到线性高效的范式跃迁
再基于这个位置从后往前进行复写操作,这样能避免元素覆盖问题,且更容易控制流程。1、先找最后一个复写元素的位置2、我们这时候得考虑个特殊情况,如果最后一个复写的元素是0,但是只有一个有效位置了,这时候dest就等于n了,我们只需要进行边界判断即可解决这种情况3、从后往前完成复写操作。
2025-10-31 00:04:46
1325
56
原创 【C++ 入门】:引用、内联函数与 C++11 新特性(auto、范围 for、nullptr)全解析
在 C++11 中,auto关键字被赋予了全新的含义 —— 作为编译期类型推导指示符。它不再表示 “自动存储期的变量”,而是让编译器根据变量的初始化表达式,自动推导出变量的实际类型。这一特性极大简化了复杂类型的声明,尤其在处理冗长的 STL 容器迭代器、模板类型等场景时,能显著提升代码的简洁性和可读性。使用auto的核心要求是变量必须初始化,因为编译器需要通过初始化表达式才能完成类型推导。int a = 10;auto b = a;// 编译器推导出b的类型为int// 推导出c的类型为char。
2025-10-30 21:45:10
1114
45
原创 【Linux】深入浅出 Linux 自动化构建:make 与 Makefile 的实用指南
本文介绍了Linux开发中make和Makefile工具的核心概念与使用技巧。首先阐述其必要性:通过自动化编译解决手动重复执行gcc命令的低效问题。重点解析了Makefile的两个核心要素:依赖关系(目标文件与源文件的关联)和依赖方法(生成目标的编译命令)。通过一个输出"hello Makefile"的C程序案例,演示了从预处理到最终可执行文件的多层依赖规则编写。文章深入剖析了make的工作原理,包括按需编译机制(通过比较文件修改时间)、伪目标(如clean清理)的应用,以及特殊符号$@
2025-10-25 20:20:11
1745
38
原创 【下篇】链表 OJ 题,原来可以这样 “盘”!
🔥 脏脏a的技术站 🔥「在代码的世界里,脏脏的技术探索从不设限~」📌 技术聚焦:单链表的原理与操作。
2025-10-24 09:43:59
687
42
原创 【C++ 入门】:从语言发展脉络到实战细节 —— 详解命名空间、输入输出、缺省参数与函数重载
文章摘要 本文系统介绍了C++的核心特性,包括其发展历程、命名空间机制、输入输出操作、缺省参数及函数重载功能。C++在C语言基础上扩展了面向对象编程能力,通过命名空间解决全局命名冲突问题,提供更简洁的I/O流操作(如cout/cin)。缺省参数增强了函数调用的灵活性,而函数重载则允许同名函数根据参数差异实现不同功能。文章还对比了C++与C语言在函数重载支持上的底层差异(如名字修饰规则),帮助开发者理解C++的底层实现逻辑。适合作为C++基础特性的学习指南。(149字)
2025-10-22 21:27:29
1478
35
原创 【上篇】链表 OJ 题,原来可以这样 “盘”!
🔥 脏脏a的技术站 🔥「在代码的世界里,脏脏的技术探索从不设限~」📌 技术聚焦:单链表的原理与操作。
2025-10-22 21:26:13
692
33
原创 【Linux】Linux:sudo 白名单配置与 GCC/G++ 编译器使用指
本文围绕Linux开发环境展开,详细解析了sudo权限管理与GCC/G++编译工具的核心使用技巧。首先介绍了sudo白名单的配置方法,确保权限使用的安全性与精确性;其次深入讲解了C/C++开发环境的头文件与库文件支撑;随后剖析了GCC与G++的本质区别及编译的四个关键阶段(预处理、编译、汇编、链接);最后对比分析了静态库与动态库的特性、优缺点及混合链接策略。全文贯穿实用案例,帮助开发者快速掌握Linux下C/C++程序开发的必备技能。
2025-10-19 22:11:30
1554
53
原创 【数据结构】单链表:数据的串联艺术
链表是物理存储结构非连续、非顺序,线性结构,数据元素的逻辑顺序通过链表中节点的指针链接次序实现。每个节点包含 “数据域”(存储数据)和 “指针域”(指向后续节点)两部分,从堆上申请的节点空间可能连续也可能不连续,但通过指针可形成逻辑上的连续链2。先定义数据类型与节点结构,数据类型用表示(可按需修改为charfloat// 单链表数据类型,可按需修改// 数据域:存储节点数据// 指针域:指向后续节点。
2025-10-19 22:10:51
1069
31
原创 算法性能的核心度量:时间复杂度与空间复杂度深度解析
时间复杂度是一个函数,定量描述算法的基本操作执行次数。例如,对于以下函数Func1,我们需要先计算其基本操作(++count// 外层循环N次,内层循环N次:共N*N次i < N;// 基本操作1// 循环2*N次:共2*N次k < 2 * N;// 基本操作2// 循环10次:共10次int M = 10;++count;// 基本操作3通过计算,Func1可以发现,随着 N 增大,N²。
2025-10-15 23:22:44
1466
44
原创 【Linux】Linux工具漫谈:yum 与 vim,高效操作的 “左膀右臂
🔥脏脏a的技术站分享:Linux高效操作指南🔥 本文聚焦Linux系统两大效率工具:yum软件包管理和vim文本编辑。 【yum智能包管理】 yum作为Linux的"应用商店",可自动解决依赖关系,简化软件安装流程 三种安装方式对比:源码编译繁琐、rpm需手动处理依赖、yum最便捷 国内镜像配置技巧:替换阿里云等镜像源可大幅提升下载速度 【vim高效编辑】 多模式设计:命令模式(操作控制)、插入模式(文本输入)、底行模式(系统交互) 核心命令速记: 移动:h/j/k/l(方向键)、g
2025-10-14 19:46:28
1239
38
原创 【Linux】Linux 权限管理入门指南
本文系统介绍了Linux权限管理核心知识。首先解析Shell作为命令行解释器的工作原理,说明其在用户与内核间的中介作用。详细讲解Linux用户分类(root/普通用户)及切换命令(su/sudo)。重点剖析文件权限体系:文件访问者角色划分(所有者/组/其他用户)、基础权限类型(r/w/x)及其表示方法(字符/8进制)。通过案例演示权限修改命令(chmod/chown/chgrp)和权限掩码机制。特别探讨目录权限特性及共享文件场景下的粘滞位应用,解决多用户环境下的文件安全删除问题。全文以实践案例贯穿理论,构建
2025-10-11 00:32:47
7660
48
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅