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

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

相同点

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

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

不同点

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

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

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

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

相关推荐
hongyucai36 分钟前
随意学习-模型工程:因子、隐空间、采样策略
学习
Amazing_Cacao5 小时前
CFCA精品可可产区风土体系(亚洲):彻底拒绝应试背诵,将感官复核作为检验真实物理差异的唯一铁律
学习
caimouse11 小时前
protoc-gen-c 支持 proto3 `optional` 关键字修改记录
c语言·学习
憧憬成为java架构高手的小白11 小时前
黑马八股--中间件学习之MQ(RabbitMQ)
学习·中间件
撩得Android一次心动12 小时前
Linux编程笔记4【个人用】
linux·笔记·学习
user-猴子13 小时前
让网页“活”过来 —— 用AI打造会自主学习的动态知识图谱
人工智能·学习·知识图谱
网络工程小王14 小时前
【HCIE-AI】10.pytorch模型迁移分析
人工智能·学习·华为·llama
魔城烟雨15 小时前
从零开始学习betaflight《3-硬件接口设计规范标准》
学习·设计规范
不言鹅喻17 小时前
HarmonyOS ArkTS 实战:实现一个单词背诵与英语学习应用
学习·华为·harmonyos
正经人_x17 小时前
学习日记42
学习