上篇文章我们学习了指针。这篇文章我们来学习一下句柄。相同点句柄和指针都是通过一种间接的方式去操作我们的目标资源。其在代码中的表现方式都是一种整型数值的表现方式地址值本质是一个整型数值。不同点指针在多数语言中是一种语言的明确规范。表示的就是该资源在程序中所存储的地址。可以通过解引用指针做到仅跨越一层来获取指向的目标资源。不过如果该资源是程序本身的则无法跨进程共享。而句柄不受限于某种编程语言这更是一种设计的理念和模式。它以一种标识符的方式对下层进行访问可以一层也可以多层且该资源是一种共享资源不受限于某个具体的进程。在我们程序进程中会维护一张系统调用的表该表中每一个值与内核层的关联实体建立一层映射而每个进程都会建立这张表我们称之为 句柄列表由于这是对用户是不透明的因此我们看到不同进程中操作同一个资源时的句柄值可能是不同的。下图是一张基于上述描述的概念图