首页
Python
Java
前端
数据库
Linux
Chatgpt专题
开发者工具箱
取经专题
【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.无重复长度的最长子串 😛😛😛希望我的文章能对你有所帮助,有不足的地方还请各位看官多多指教,大家一起学习交流! 动动你们发财的小手,点点关注点点赞!在此谢过啦!哈哈哈!😛😛😛 目录 一、题目解析 二、源代码 一、题目解析 这个题目的意思就是: 在给定的字符串里面,找出不重复的字符串的最
阅读更多...