抱歉,您的浏览器无法访问本站
本页面需要浏览器支持(启用)JavaScript
了解详情 >

其实在此之前我就大概知道,stack unwinding 是反向回溯栈的一种机制,在 throw 了什么东西后一层层回溯栈,一层层析构掉这些栈上的 RAII 对象,直到找到 try catch 块后跳转到 catch 块。 但是问题是这种事情是怎样实现的?多说无益,我们直接从 throw 的源码入手分析。 首先我们编写一段示例代码: 12345678910111213141516171819...

本文参考的内核源码版本为 5.15 在 linux 内核项目中,epoll 机制的实现只用了一个文件 fs/eventpull.c 不过这一个文件就有 2000+ 行代码 先从我们熟知的 epoll 系统调用开始分析,看看它们到底都做了些什么: epoll_create123456789101112131415161718192021222324252627282930313233343...