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

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

相同点

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

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

不同点

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

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

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

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

相关推荐
小弥儿9 小时前
开源 VoiceStudio,声音克隆|配音|有声书一站式本地完成
学习·开源·github
点心的游戏开发世界12 小时前
Unity C# 脚本学习笔记:命名空间与 using
学习·unity·c#
香芋芋圆13 小时前
AI 冲击内卷之下,普通前端如何破局?WebGIS—— 低门槛突围赛道
前端·javascript·人工智能·学习·职场发展
点心的游戏开发世界14 小时前
Unity C# 脚本学习笔记:泛型
学习·unity·c#
tju新生代魔迷15 小时前
Verilog HDL 学习笔记(十三)| 第13章 编程语言接口(PLI)
笔记·学习
我爱cope17 小时前
【计算机网络 | 网络层11:ICMP 协议:Ping 和 Traceroute 的底层原理】
网络·学习·计算机网络
问天_观心18 小时前
大模型微调学习(一)
开发语言·人工智能·学习·语言模型·github
苏生Susheng19 小时前
【软件实施】Linux系统Shell脚本教程
linux·运维·服务器·chrome·spring boot·学习·实施
我命由我1234519 小时前
Photoshop - Photoshop 把两个 PSD 文件合并
学习·ui·职场和发展·产品运营·产品经理·学习方法·photoshop
小雪崩21 小时前
嵌入式学习 day39:TCP并发服务器模型
linux·服务器·c语言·网络·学习·tcp/ip