自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 Linux·进程信号

本节从信号的产生,信号的保存,信号的捕捉三个方面解析了信号在造作系统中的结构,以及用户层面的使用。通过信号我们讲解了中断是什么,操作系统是怎么借助中断运行起来的,以及虚拟地址空间的内核区和用户区的区别

2024-11-13 14:10:13 771

原创 Linux·进程控制(system V)

本节讲解了system V标准下的三种IPC进程间通讯方案,共享内存、消息队列、信号量,主要是体验一下标准的效果,还了解一下设计这三种IPC方案的OS层面原理,如何用C写出C++中的多态,非常巧妙

2024-11-03 14:45:46 1326

原创 Linux·进程间通讯(管道)

本节讲解匿名管道的原理并模拟父进程与多个子进程通过匿名管道通讯,以及命名管道的使用mkfifo原理,并写了两个普通进程通过命名管道通讯的模拟。

2024-10-31 14:48:46 723

原创 Linux·动静态库

本节讲解软硬链接是什么怎么自己创建软硬连接,动静态库是什么怎么自己创建。可执行程序的ELF格式是什么,CPU是怎么执行一个可执行程序的,虚拟地址空间中的字段是怎么初始化的结构是什么样的,动态库是怎么链接的,为什么能做到与位置无关

2024-10-24 20:34:33 845

原创 Linux·磁盘和文件

本节讲解了磁盘的物理结构和逻辑结构,文件信息从内存中转存到磁盘上,inode作为文件的唯一描述符有什么意义。

2024-10-22 12:52:58 854

原创 Linux·文件与IO

本节讲解了5个系统级文件操作函数,从系统层面解释了一切皆文件是如何通过文件描述符表和虚拟文件系统实现的,数据在外设和内存中是如何通过用户级缓冲区和文件内核级缓冲区在磁盘和内存之间IO的,以及输入输出重定向在系统层面实现的原理,代码中如何进行重定向

2024-10-18 20:12:16 1031

原创 Linux·进程控制

本节讲解进程终止、进程等待、进程替换的做法和意义,最后我们手搓了一个简易的shell外壳帮助更好的理解进程控制的作用,main函数参数,环境变量,内建命令的作用

2024-10-14 10:14:47 1148 1

原创 Linux·环境变量与进程地址空间

本节讲解了环境变量、本地变量是什么有什么用,和进程地址空间是什么,解析了进程、虚拟地址空间、页表、真实物理空间之间的关系

2024-10-04 17:43:50 1001

原创 Linux·进程概念(下)

本节讲解了进程优先级PRI和nice值是什么,如何修改进程优先级;进程切换的原理ir寄存器pc指针和eip寄存器是什么,什么是进程的上下文数据;Linux中真实的进程调度算法是怎样的,真的是一根链表穿起来轮转吗;Linux中的数据结构是如何实现同一块结构体在不调整对应成员变量类型时能用完全不同的数据结构组织起来的

2024-10-02 19:32:11 1125 1

原创 Linux·进程概念(上)

本节简单讲解了操作系统的任务和管理内核"先描述在组织",然后将进程在操作系统中是如何被控制着运行的过程梳理了一下,之后针对进程的标识符属性和状态属性进行详细讲解,同时使用了查看进程属性和建立进程的一些命令和系统调用接口

2024-09-25 17:15:57 1371

原创 Linux·权限与工具-git与gdb

本节讲解了git工具的注册和使用,gdb/cgdb命令行调试工具的使用方法

2024-09-18 18:24:13 966

原创 C++·io流

本节内容简单,主要讲述了3种io流的用法

2024-09-11 22:42:14 1080

原创 Linux·权限与工具-make

本节讲解了makefile工具的用法,它可以极大简化我们对文件进行的操作

2024-08-18 15:58:42 842

原创 Linux·权限与工具-yum与vim

本节讲解了软件包管理器yum的原理和使用,以及yum源的替换方法。vim编辑器的用法各种命令集,同时提供了一份vim配置的方案。最后讲解了gcc/g++编译器的使用,加深对编译器的编译过程的理解,同时讲解了链接过程的原理,静态库和动态库的区别。

2024-08-14 10:27:15 932

原创 C++·智能指针

本节讲解了智能指针。RAII:利用对象的生命周期来管理资源的方法。以及利用引用计数方案进行拷贝构造的方法。

2024-08-11 15:34:43 589

原创 C++·异常

本节主要讲解了异常的概念、使用和其一些安全问题。

2024-08-08 17:14:15 702

原创 C++·C++11

本节讲解了C++11新增的一些特性,其中右值引用和移动用语,可变模板参数,lambda表达式和两种包装器是本节的重点。

2024-08-08 11:03:37 1104

原创 C++·哈希

本接讲解了unordered系列关联式容器,也就是所谓的哈希容器。哈希思想的原理,以及手动实现了闭散列哈希表,和开散列哈希表

2024-07-30 10:53:26 1049

原创 C++·set与map容器(下)

本节封装了set和map容器

2024-07-27 10:55:03 830

原创 数据结构·红黑树

本节讲解了红黑树的结构和实现,红黑树是通过节点颜色来满足它的前四条规则,使得搜索树近似平衡的。

2024-07-25 10:26:51 985

原创 数据结构·AVL树

本节讲解了AVL树的概念,并手撕了一个AVL树,其中AVL树的旋转是本节的重点

2024-07-23 18:03:28 1040

原创 C++·set与map容器(上)

本节讲解了set容器,multiset容器,map容器,mutlimap容器的各种接口和使用

2024-07-21 11:19:41 767

原创 C++·二叉树进阶

本节讲解了二叉搜索树的概念,并手动实现了K模型和KV模型的二叉搜索树的层序、搜索、插入、删除功能,简单分析了下它的性能,下节我们将讲解K模型容器set和KV模型容器map

2024-07-19 14:35:24 764

原创 Linux·权限与工具(上)

本节讲解了,shell操作系统的外壳程序是什么,Linux中怎么设置删除用户,文件和目录的权限属性:读写可执行,拥有者拥有组其他人,以及如何修改这些参数,umask权限掩码是什么,粘滞位t是什么权限

2024-07-17 16:31:43 815

原创 Linux·基本指令(下)

本节讲解了剩余的一些指令,有mv、cat、重定向的> >> < 、less按页查看、head tail 管道| 、date、cal日历、find、which、alias指令别名、zip unzip tar压缩解压、sz rz操作系统间传文件、bc计算器、uname -r/-a 查询机器相关参数、shutdown

2024-07-16 12:51:56 991

原创 C++·多态

本节讲解了多态的概念和实现方法,即虚函数重写和传父类引用或指针调用。析构函数重写的注意事项即原理。两个检查用关键字override和final。抽象类的概念即作用,并用一道很有意思的立体讲解了接口继承和实现继承。最后讲解了多态实现的原理,有助于大家更深层次的理解多态。

2024-07-14 13:00:52 985

原创 C++·继承

本节详解了继承这一概念,介绍了继承的定义如何用代码写出继承逻辑,继承后父类成员访问方式的变化,继承中的赋值兼容转换问题,继承时子类的默认构造函数的手写方法,继承时友元与静态成员的状态,多继承与菱形继承的数据冗余和二义性的问题与解决办法

2024-07-11 13:52:13 1024

原创 C++·模板进阶

本节讲解了更多的模板使用方法,重点在于模板参数,包括非类型模板参数的使用,类模板的全特化和偏特化,最后解释了一下模板不能声明和定义分离的问题

2024-07-09 20:54:34 680

原创 C++·栈和队列

本节讲解了C++中栈和队列的应用以及底层逻辑,容器适配器的概念,deque双端队列的概念和原理。最后重点讲解了优先级队列priority_queue的概念和实现,这东西就相当于堆容器,同时讲解了仿函数的基本概念

2024-07-08 20:56:23 805

原创 C++语言·list链表(下)

本节的重点是手动封装了一个链表的迭代器,在其中实现对于迭代器的各种移动操作等

2024-05-29 11:57:29 821

原创 C++语言·list链表

本节讲解了list链表容器的诸多接口,值得注意的是链表已经不支持方括号访问了,但是别的接口还是基本相似的,最后还有一些链表自己的特殊操作接口

2024-05-26 16:15:35 963

原创 C++语言·vector顺序表(下)

本节实现了一个vector类,期间初次自己实现了迭代器并对迭代器的操作有更深的了解,学习了find函数,并对深拷贝有更深入的接触,最后学习了C++11中的initializer_list类,并基于这个类写了相应构造函数,对于模板也有了更深入的使用和了解

2024-05-22 00:15:12 894

原创 C++语言·vector顺序表

本节讲解了vector顺序表的诸多接口,还补充了一下sort的第二种重载的用法

2024-05-18 12:02:20 772

原创 C++语言·string类(下)

本节手动实现了一个简陋的string类,以及其中的部分实用接口,比较有意思的是拷贝构造和赋值运算符重载的两个现代写法的思维,采用交换的方案减少了很多代码量。

2024-05-17 17:26:03 692

原创 Linux·基本指令

本节讲解了 ls pwd cd touch mkdir rm man cp nano九项基本指令,并涉及了 cat gcc tree 三个指令,下节将讲解更多基本指令

2024-05-11 14:27:16 977 1

原创 C++语言·string类

本节讲解了string类的概念,以及其类下的绝大多数接口

2024-05-09 20:58:53 985

原创 C++语言·模板初阶

本节讲解了函数模板和类模板的使用,内容较为简单

2024-04-22 23:22:50 795

原创 C++语言·内存管理

本节内容较为简单,讲解了C++中的内存管方案,用 new-delete 代替了malloc-free ,同时还讲解了new-delete的一些底层实现

2024-04-21 22:29:27 705

原创 C++语言·类和对象(下)

本节主要讲解类和对象中的一些琐碎知识点,重点在于初始化列表的写法和隐式类型转换时的一些小细节以及其优化的思路

2024-04-20 22:54:33 853

原创 C++语言·类和对象

本节详细介绍了C++中类的各个概念,包括定义、用法、this指针、类的6个默认成员函数中的各种重载方、const成员函数、最后实现了一个较为完善的日期类,其中覆盖了本节绝大多数知识点

2024-04-17 19:05:35 1215 1

空空如也

空空如也

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

TA关注的人

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