编程初学者学习:句柄(二)

上篇文章,我们学习了指针。这篇文章,我们来学习一下句柄。

相同点

句柄和指针都是通过一种间接的方式去操作我们的目标资源。

其在代码中的表现方式都是一种整型数值的表现方式(地址值本质是一个整型数值)。

不同点

指针在多数语言中是一种语言的明确规范。表示的就是该资源在程序中所存储的地址。可以通过解引用指针做到仅跨越一层来获取指向的目标资源。不过,如果该资源是程序本身的,则无法跨进程共享。

而句柄不受限于某种编程语言,这更是一种设计的理念和模式。它以一种标识符的方式对下层进行访问,可以一层也可以多层,且该资源是一种共享资源,不受限于某个具体的进程。

在我们程序进程中会维护一张系统调用的表,该表中每一个值与内核层的关联实体建立一层映射,而每个进程都会建立这张表,我们称之为 句柄列表,由于这是对用户是不透明的,因此我们看到不同进程中操作同一个资源时的句柄值可能是不同的。

下图是一张基于上述描述的概念图:

相关推荐
xuhaoyu_cpp_java2 小时前
项目学习(三)分页查询
java·经验分享·笔记·学习
小宋加油啊4 小时前
机械臂抓取物体 PVN3D算法调研学习
学习·算法·3d
Xzh04235 小时前
AI Agent 学习路线(Java 后端方向)
java·人工智能·学习
做cv的小昊6 小时前
计算机图形学:【Games101】学习笔记08——光线追踪(辐射度量学、渲染方程与全局光照、蒙特卡洛积分与路径追踪)
图像处理·笔记·学习·计算机视觉·游戏引擎·图形渲染·概率论
星恒随风6 小时前
C++ 类和对象入门(五):初始化列表、explicit 和 static 成员详解
开发语言·c++·笔记·学习·状态模式
sensen_kiss7 小时前
CPT304 SoftwareEngineeringII 软件工程 2 Pt.8 软件测试 (Software Testing)(上)
学习·软件工程
力学与人工智能7 小时前
PPT分享 | 洛桑联邦理工学院魏震:深度几何学习在工业设计优化中的应用
学习·优化·工业设计·深度几何学习·洛桑联邦理工学院
sensen_kiss9 小时前
CPT304 SoftwareEngineeringII 软件工程 2 Pt.9 软件测试 (Software Testing)(下)
学习·软件工程
wu_ye_m9 小时前
学习c语言第35天 函数声明和定义
c语言·开发语言·学习
清辞85310 小时前
Coze从入门到实战---第一、二章
大数据·人工智能·学习·语言模型