
简介
该用户还未填写简介
擅长的技术栈
可提供的服务
暂无可提供的服务
这里获取最长路径和最短路径,检查最长路径不超过最短路径的2倍是不可行的,因为就算满足这个条件,红黑树也可能颜色不满足规则,当前暂时没出问题,后续继续插入还是会出问题的。cur作为新插入的节点这里只是一种概述情况,但这种逻辑是只要节点出现这种情况就如此处理,但我们需要注意如果我们变化的祖父节点是根节点,就违反了红黑树的逻辑,所以无论如何变化我们都要加上一句让根节点始终保持黑色。3. 规则3前序遍历检

哈希表(Hash Table)是一种高效的数据结构,它通过哈希函数将键(Key)映射到数组中的一个位置,从而实现近乎 O (1) 的平均时间复杂度的插入、删除和查找操作。在 C++ 标准库中,和就是哈希表思想的典型实现。

str 1的意思是向内存申请了一个空间,存了hello bit.\0,str2的意思也是一样,str3的意思是向内存申请空间,存了hello bit.\0的地址,str4也想和str3一样,但相同的常量字符串没必要保存两份,因为常量字符串不会被修改,因此str4中存的地址和str3的地址是一样的。void(*)(),0是in他,地址《--- 0,(void(*)())0,强制类型转换,(*(voi
本文系统介绍了文件操作的相关概念与技术。首先从狭义和广义两个角度定义文件概念,指出Linux"一切皆文件"的设计理念。然后回顾了C语言文件接口的基本操作(打开、读写、关闭),并详细解析了系统级文件I/O接口(open、read、write等)。重点阐述了文件描述符的分配规则、重定向原理及其实现方法,包括dup2系统调用的使用。文章还深入探讨了Linux"一切皆文件&q

我们看到,真正找到磁盘上文件的并不是文件名,而是inode。其实在linux中可以让多个文件名对应于同⼀个inode。硬链接只能给普通文件建立,Linux系统不支持给目录建立硬链接,但.和..本质就是对目录的硬链接,因为如果允许用户自己给目录建立硬链接就容易造成下图这种路径环的问题,.和..名字特殊,做特殊处理即可。

常规信号在递达之前产生多次只计⼀次,而实时信号在递达之前产生多次可以依次放在⼀个队列里。

数据传输:⼀个进程需要将它的数据发送给另⼀个进程。资源共享:多个进程之间共享同样的资源。通知事件:⼀个进程需要向另⼀个或⼀组进程发送消息,通知它(它们)发生了某种事件(如进 程终止时要通知父进程)。进程控制:有些进程希望完全控制另⼀个进程的执行(如Debug进程),此时控制进程希望能够 拦截另⼀个进程的所有陷入和异常,并能够及时知道它的状态改变。怎么通信?进程间通信的本质是先让不同的进程看到同一份

进程 = 内核数据结构 + 代码和数据(执行流)。所以进程要干很多事情,帮我们打开文件,链接动静态库、信号识别......都是占用内存资源和CPU资源的。总之,进程是承担分配系统资源的基本实体。线程是进程内部的一个执行分支(执行流),线程是CPU调度的基本单位。Linux”线程“可以采用进程来模拟对资源的划分,本质是对地址空间虚拟地址(资源的代表)范围的划分代码区划分:代码中都是一些函数的调用,函

POSIX 标准中,明确允许出现「没有线程调用 signal/broadcast,函数却提前返回」的情况,也允许「多个线程被 signal 唤醒后,条件被其他线程修改,导致当前线程的等待条件不再满足」的情况。这种 “条件不满足,wait 却返回了” 的现象,就叫伪唤醒。线程池是一种线程复用的线程使用模式,它的核心逻辑可以概括为:提前创建一批线程并放入 “池子” 中统一管理,当任务到来时,直接分配池









