自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 基础IO详解

本文系统介绍了Linux文件操作的核心概念与实现机制。主要内容包括:1)C语言文件操作函数与系统调用接口的对比,详细解析文件描述符的本质与分配规则;2)文件系统结构,深入讲解磁盘管理、Inode机制和文件存储原理;3)软硬链接的特性与区别;4)静态库与动态库的制作使用及加载原理。文章通过大量代码示例演示了文件读写、重定向实现、缓冲区管理等关键技术,并对比分析了不同技术的优缺点,为深入理解Linux文件系统提供了全面参考。

2025-08-29 00:06:40 633

原创 Linux进程控制

本文介绍了Linux进程控制的关键技术,包括: 进程创建:通过fork()函数创建子进程,父子进程共享代码但独立执行,通过返回值区分父子进程,并解释了写时拷贝机制。 进程终止:介绍了退出码的意义和使用方法,以及exit()和_exit()函数的区别。 进程等待:详细说明wait()和waitpid()函数的使用,包括阻塞/非阻塞等待方式,以及如何获取子进程状态信息。 进程替换:讲解exec函数族的使用方法,包括各种参数传递方式,以及如何替换进程执行的程序。 Shell实现:演示了如何模拟Shell程序

2025-08-06 09:53:22 945

原创 Linux进程概念

本文主要介绍了冯诺依曼体系结构、操作系统和进程管理的核心概念。首先阐述了冯诺依曼体系结构中CPU只能直接访问内存的特点,解释了操作系统作为硬件与用户间的桥梁作用。重点讨论了进程管理,包括进程控制块(PCB)的数据结构、进程状态(运行、阻塞、挂起等)、父子进程关系(fork函数)、进程优先级以及环境变量。特别分析了Linux特有的进程状态(如僵尸进程、孤儿进程)和进程地址空间的虚拟内存机制,通过写时拷贝技术实现进程间内存隔离。全文系统性地梳理了计算机系统中最关键的进程管理机制和技术实现。

2025-07-23 16:23:25 594

原创 Linux环境基础开发工具使用

摘要:本文介绍了Linux环境下常用开发工具的使用方法,主要包括: yum软件包管理器的安装、卸载及国内源配置 vim编辑器的三种模式切换、常用命令和配置方法 gcc/g++编译器的编译流程(预处理、编译、汇编、链接)和函数库使用 make/Makefile项目构建工具的基本原理和使用方法 git版本控制的基本操作流程 gdb调试器的debug模式编译和调试命令 这些工具涵盖了Linux开发的完整工作流程,从软件安装、代码编辑、程序编译、项目构建到版本控制和调试,是Linux开发者必须掌握的基础技能。

2025-07-09 21:48:52 1036

原创 Linux常见指令以及权限理解

本文总结了Linux常用命令及其功能,涵盖文件管理、权限设置、文本查看、时间操作等多个方面。文件管理命令包括ls、pwd、cd、touch、mkdir、rm等,用于目录和文件操作;权限管理命令如chmod、chown、chgrp等,用于设置文件和目录权限;文本查看命令如cat、more、less等,用于查看文件内容;时间操作命令如date、cal等,用于显示和管理时间。此外,还介绍了shell的作用、用户切换(su)、权限概念(root和普通用户)、文件权限表示方法(字符和数值)以及umask的使用。文章详

2025-07-03 22:04:12 1091

原创 C++类型转换

C两种形式的类型转换:1. 隐式类型转化:可能会出现数据精度丢失等问题2. 显式类型转化将:代码不够清晰标准C++为了加强类型转换的可视性,引入了四种命名的强制类型转换操作符:注意:因为C++要兼容C语言,所以C++中还可以使用C语言的转化风格。

2025-05-28 15:32:08 526

原创 C++智能指针

auto_ptr:管理权转移unique_ptr:防止拷贝shared_ptr:引用计数的共享拷贝推荐使用unique_ptr/shared_ptr。

2025-05-24 14:04:56 1064

原创 C++异常

实际使用中,很多公司都会定义一套继承的规范体系。抛出的都是继承的派生类对象,捕获一个基类就可以了通过构成多态来实现区分抛出的异常//抛自己定义的异常,但是必须继承这个基类public:{}//纯虚函数protected:int _errid;//错误码//错误描述//基类一public:{}//虚函数重写//基类二public:{}//虚函数重写//测试//模拟抛异常报错throw SqlException("数据库异常", 1);

2025-05-20 23:08:16 965

原创 C++11微知识

a.可以用{}对数组或者结构体元素进行统一的列表初始值设定 b.可以用{}对实例化对象调用构造函数初始化 (使用初始化列表时,可添加=,也可不添加)c.可以用{}初始化容器对象,给容器对象赋值。

2025-05-15 11:38:15 737

原创 哈希表详解

哈希表就是为了解决查找的问题而生 一般哈希表有两种形式。

2025-05-09 20:08:55 1074

原创 map和set的底层原理

本文介绍了map_set的底层实现——平衡二叉搜索树(AVL树和红黑树)。首先回顾了二叉搜索树的基本原理、插入、遍历和删除操作,并指出其可能退化为链表导致效率下降的问题。然后详细讲解了AVL树的平衡原理,包括平衡因子概念、四种旋转操作(左/右单旋、左右/右左双旋)及其实现代码。接着介绍了红黑树的特性、插入规则和实现方法,比较了红黑树与AVL树的优缺点。最后展示了如何改造红黑树来模拟实现STL中的map和set容器,包括迭代器设计、仿函数应用等关键技术。

2025-05-07 23:44:04 907

原创 C++多态

a.修饰虚函数,使基类虚函数无法被子类重写b.修饰类,使类无法被继承public:{cout << "全价" << endl;public://此时,该函数无法被重写无效// { cout << "半价" << endl;{};//使A类无法被继承//{};(1)虚函数不是存在虚表中,虚表中存的是虚函数的指针(2)虚函数和普通函数编译成指令后都存在代码段,虚表也存在代码段。

2025-04-01 00:49:30 1016

原创 C++继承

重定义的概念:重定义也叫隐藏,子类重新定义父类中的非虚函数,屏蔽了父类的同名函数当访问同名成员时,基类的成员被隐藏,优先访问派生类的成员,需要加上作用域才能访问隐藏成员,如person::_a进行显示访问重定义条件:1.两个函数分别在基类和派生类的作用域2.函数名相同即可区分:重载:必须在同一作用域class Apublic:public:return i;//调用子类的函数b.func(1);//调用父类的函数return 0;

2025-03-30 16:48:09 853

原创 C++模板

本文摘要:模板是C++中实现代码复用的重要机制,分为函数模板和类模板。函数模板通过template<class T>定义,可修饰参数和返回值;类模板可修饰成员变量和函数。模板在调用时实例化,支持隐式/显式两种方式。类模板还支持非类型参数(常量)。模板特化分为全特化(完全指定类型)和偏特化(部分指定类型)。模板声明和定义不能分离,可通过显式实例化解决,但需为每种类型单独实例化。模板特性包括类型参数化、延迟实例化和特殊化处理能力。

2025-03-29 22:52:05 385

原创 表达式的计算

表达式计算

2025-03-25 16:50:27 461

原创 类与对象的微知识

类与对象

2025-03-16 17:06:57 779

原创 类的构造函数

构造函数是一种特殊的方法,用于初始化类的对象。在类的实例被创建时,构造函数会被自动调用。构造函数通常用来为对象的属性赋初值或执行其他必要的初始化操作。意义:使对象被初始化假如我们有一个简单的日期类对于Date类,每次我们创建对象时,都必须调用Init给对象设置内容而构造函数就是使我们在创建对象时,自动将要传递的内容放进去,替代Init构造函数是一个特殊的成员函数1.名字与类名相同2.无返回值创建构造函数使用构造函数(其中一种)类型1.自己实现的有参的构造函数直接在所创建的对象后面进行传

2025-03-08 18:49:11 486

原创 常见的排序思路及算法

常见的排序

2025-03-01 18:52:39 837

原创 平衡二叉树优化算法

平衡二叉树优化算法

2025-02-25 00:01:07 296

原创 环形链表与相交链表

环形链表,相交链表

2025-02-15 11:09:31 797 2

空空如也

空空如也

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

TA关注的人

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