- 博客(3)
- 收藏
- 关注
原创 避免执行某个函数atexit()的方法
为了避免替换进程映像后影响到当前进程的资源释放,通过fork子进程的方式,将我们不希望执行atexit的函数放到子进程中执行,在它之后要执行的函数仍在parent进程中执行,并等待子进程执行结束。通过 atexit 注册的函数会被存储在一个特定的数据结构中,这个结构是数据段的一部分。调用的一个外部函数中有atexit注册的函数,现因业务需求,不希望那个函数里通过atexit注册的函数被执行。因此在程序结束前,通过execl随便执行一个新进程替换当前的程序映像,便不会执行到atexit注册的函数。
2024-08-11 23:27:39
877
原创 IO多路复用 | select | poll | epoll
国内互联网上关于IO多路复用的讲解大都模棱两可,于是经过我的查阅与理解将其总结到了这。首先什么是多路复用(multiplexing)?搜索后不难发现:在硬件中,多路复用指多个输入传递给多个输出时,指借助一条线路进行传输。不过这不是重点,因为我要讲的是Linux中的IO多路复用(I/O Multiplexing)。IO多路复用也是一种管理多个输入输出操作的技术,它允许一个单一的进程或线程同时处理多个输入输出事件,而无需为每个事件创建独立的线程或进程。
2024-08-11 19:35:46
2029
原创 linux红黑树结构体为什么只有3个指针?
众所周知,红黑树是一种自平衡的二叉搜索树,用于保持数据的有序性并支持高效的插入、删除和查找操作。它遵循以下性质:节点颜色:每个节点是红色或黑色。根节点:根节点是黑色。红色节点限制:红色节点不能有红色子节点,即红色节点的两个子节点必须是黑色。黑色平衡:从任何节点到其所有子节点的路径上,黑色节点的数量必须相同。balabala…红黑树通过其自平衡特性,能够确保对数时间复杂度的操作,满足高效的插入、删除和查找需求,操作的平均时间复杂度为O(logn)。
2024-08-11 16:03:22
1644
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅