取经专题

【C++取经之路】map的详细介绍及其使用

目录 关于map 键值对 map的常用操作 关于multimap 关于map template < class Key, // map::key_typeclass T, // map::mapped_typeclass Com

【数据结构取经之路】位图全解

目录 前言 C++标准库里的位图 位图的设计及实现 位图几个关键接口的实现 set() reset() test()  完整代码 位图的使用场景 位图的优缺点 位图的使用演示 —— 几道面试题的讲解 前言 位图(Bitmap)是一种非常高效的数据结构,主要用于处理大量数据的快速查找、去重等操作。它利用每一位(bit)来表示某个元素是否存在或某种状态,从而极大地

【Linux取经路】网络套接字编程——TCP篇

文章目录 前言十、Tcp Server 端代码10.1 socket、bind10.1 listen——监听一个套接字10.2 accept——获取一个新连接10.3 read——从套接字中读取数据10.4 write——向套接字中进行写入10.5 Tcp Service 端完整代码(单进程版)10.6 Tcp Server 端代码(多进程版)10.7 Tcp Server 端代码(多线

【Linux取经路】守护进程

文章目录 一、前台进程和后台进程二、Linux 的进程间关系三、setsid——将当前进程设置为守护进程四、daemon——设置为守护进程五、结语 一、前台进程和后台进程 Linux 中每一次用户登录都是一个 session,一个 session 中只能有一个前台进程在运行,键盘信号只能发送给前台进程,其中谁拥有键盘文件谁就是前台进程。./process & 表示启动一个

【Linux取经路】信号的发送与保存

文章目录 一、重新理解发送信号二、信号的保存、阻塞信号的概念三、信号集操作函数3.1 sigprocmask3.2 sigpending 四、阻塞信号代码验证五、结语 一、重新理解发送信号 进程通过位图来实现对普通信号(1-31号信号)的保存,该位图保存在进程的 task_struct 结构体中。比特位的内容是 0 还是 1,表明是否收到信号;比特位的位置是第几个,表明信号的

【Linux取经路】进程通信之匿名管道

文章目录 一、进程间通信介绍1.1 进程间通信是什么?1.2 进程间通信的目的1.3 进程通信该如何实现 二、管道2.1 匿名管道2.1.1 站在文件描述符角度深入理解管道2.1.2 接口使用2.1.3 PIPE_BUFFER 和 Pipe capacity2.1.4 管道中的四种情况2.1.5 管道特征总结 2.2 匿名管道使用场景2.2.1 命令行中的管道2.2.2 基于管道的简易进

c++取经之路(其八)——基础模板

我认为的模板其实就是个懒人工具,你来弄个模板,编译器自动给你生成对应的函数。 函数模板: 定义:函数模板是一个蓝图,它本身并不是函数,是编译器用使用方式产生特定具体类型函数的模具。所以其实模板就是将本来应该我们做的重复的事情交给了编译器。 我们来举个加法的例子: 基本写法: template<typename T>T add( T& x, T& y){return x+y; }

【数据结构取经之路】栈

目录 引言 栈的性质 顺序栈  栈的基本操作  初始化  销毁 插入 删除 判空 取栈顶元素 栈的大小 完整代码:  引言 栈(stack),可以用数组实现,也可以用链表实现。用数组实现的栈叫顺序栈,用链表实现的栈叫链式栈,本文讲解的是顺序栈。栈,作为一种特殊的数据结构,在一些方面有着重要用途,例如,快速排序的非递归实现就需要借助栈来完成。 栈的性质 栈是限

取经阿里十年技术大佬,得到Java线上问题排查攻略!

本文收录于JavaStarter ,里面有我完整的Java系列文章,学习或面试都可以看看 (一)前言 再牛逼的程序员都写不出完美无缺的代码,作为后端开发工程师,一不小心就会遇到线上故障。如果线上故障处理不及时,就可能导致各种严重的后果。恰好最近部门出现了一次挺严重但幸运的是影响面不大的线上故障,最后在阿里工作十年的leader分享了线上问题的排查思路。结合这次分享,写下了这篇Java线上

【Linux取经路】文件系统——inode与软硬链接

文章目录 一、前言二、认识硬件——磁盘2.1 磁盘的存储构成2.2 磁盘的逻辑抽象 三、操作系统对磁盘的使用3.1 再来理解创建文件3.2 再来理解删除文件3.3 再来理解目录 四、硬链接五、软链接六、结语 一、前言 在之前的【Linux取经路】文件系统之被打开的文件——文件描述符的引入一文中讨论了被打开的文件,今天讨论的话题则是没有被打开的文件。文件等于文件内容加文件属性,

【Linux取经路】文件系统之缓冲区

文章目录 一、先看现象二、用户缓冲区的引入三、用户缓冲区的刷新策略四、为什么要有用户缓冲区五、现象解释六、结语 一、先看现象 #include <stdio.h>#include <string.h>#include <unistd.h>int main(){const char* fstr = "Hello fwrite\n";const char* str = "H

【Linux取经路】文件系统之被打开的文件——文件描述符的引入

文章目录 一、明确基本共识二、C语言文件接口回顾2.1 文件的打开操作2.2 文件的读取写入操作2.3 三个标准输入输出流 三、文件有关的系统调用3.1 open3.1.1 比特位级别的标志位传递方式 3.2 write3.2.1 模拟实现 w 选项3.2.2 模拟实现 a 选项 3.3 read 四、访问文件的本质4.1 再来认识 FILE4.2 再来理解关闭文件 五、结语

【Linux取经路】探寻shell的实现原理

文章目录 一、打印命令行提示符二、读取键盘输入的指令三、指令切割四、普通命令的执行五、内建指令执行5.1 cd指令5.2 export指令5.3 echo指令 六、结语 一、打印命令行提示符 const char* getusername() // 获取用户名{return getenv("USER");}const char* gethostname() // 获取主机

【Linux取经路】进程控制——程序替换

文章目录 一、单进程版程序替换看现象二、程序替换的基本原理三、程序替换接口学习3.1 替换自己写的可执行程序3.2 第三个参数 envp 验证 四、结语 一、单进程版程序替换看现象 #include <stdio.h>#

【Linux取经路】进程控制——进程等待

文章目录 一、进程创建1.1 初识 fork 函数1.2 fork 函数返回值1.3 写时拷贝1.4 fork 的常规用法1.5 fork 调用失败的原因1.6 创建一批进程 二、进程终止2.1 进程退出场景2.2 strerror函数2.3 errno全局变量2.4 程序异常2.5 进程常见退出方法2.6 exit 函数2.7 _exit 函数和 exit 函数的区别 三、进程等待3.

【Linux取经路】初探进程地址空间

文章目录 一、历史问题回顾二、语言层面的地址空间2.1 验证 三、虚拟地址的引入3.1 初步解释这种现象——引入地址空间的概念3.2 再来粗粒度理解上面的现象 四、细节解释4.1 地址空间究竟是什么?4.2为什么要有地址空间4.3 页表4.3.1 CR3寄存器4.3.2 页表是由页表项组成的4.3.3 缺页中断 五、结语 一、历史问题回顾 之前在介绍 fork 函数的时候说

RK3588取经之路【序章】2024/01/01

文章目录 RK3588取经之路【序章】关于本文的规划 开篇开发板整体图外设介绍 结束 RK3588取经之路【序章】 2023年前入手买了这个广州英码出场的一款开发板EVM3588-A24EG-C-B2AA(裸板),花了2800左右,是不是脑子有点毛病,我觉得也是,当时想着我只要吃通这个板子,我就无敌了,起码是这个行业通杀,但是,入手了之后放那里吃灰了,今天是2024年第一天,我拿

LeetCode 取经之路——第三题-无重复长度的最长子串

🎉🎉🎉今天给大家分享的是一道滑动窗口的OJ题。 3.无重复长度的最长子串  😛😛😛希望我的文章能对你有所帮助,有不足的地方还请各位看官多多指教,大家一起学习交流! 动动你们发财的小手,点点关注点点赞!在此谢过啦!哈哈哈!😛😛😛 目录 一、题目解析  二、源代码    一、题目解析  这个题目的意思就是: 在给定的字符串里面,找出不重复的字符串的最