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

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

相同点

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

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

不同点

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

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

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

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

相关推荐
柿柿快乐19 小时前
用户认证系统实现文档
linux·服务器·网络·学习·基础教学
Chloeis Syntax19 小时前
JavaEE学习日记(2)---文件操作和IO
java·笔记·学习·java-ee
南境十里·墨染春水19 小时前
linux学习进展 Redis详解
linux·redis·学习
吃好睡好便好19 小时前
在Matlab中用sphere( )函数绘制球面图
开发语言·前端·javascript·学习·算法·matlab·信息可视化
爱喝水的鱼丶19 小时前
SAP-ABAP:第二篇:实操避坑篇——ABAP Hello World程序创建、语法校验到调试运行全流程指南
运维·服务器·数据库·学习·sap·abap
南境十里·墨染春水19 小时前
线程池学习(三) 实现固定线程池
开发语言·c++·学习
KKei163819 小时前
Flutter for OpenHarmony学习小组组队与打卡APP技术文章
学习·flutter·华为·harmonyos
GHL28427109019 小时前
MinerU学习
学习·ai
charlie11451419119 小时前
通用GUI编程技术——图形渲染实战(四十三)——D3D12设计哲学:显式控制与性能解锁
学习·3d·c·图形渲染·win32
Huangjin007_19 小时前
【C++ STL篇(八)】set容器——零基础入门与核心用法精讲
开发语言·c++·学习