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

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

相同点

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

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

不同点

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

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

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

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

相关推荐
斯维赤2 小时前
Python学习超简单第十一弹:邮件发送
开发语言·python·学习
2401_827499993 小时前
数据分析学习06(黑马)-Matplotlib
学习·数据分析·matplotlib
Magic@3 小时前
Redis学习[1] ——基本概念和数据类型
linux·开发语言·数据库·c++·redis·学习
BJHHZX19913 小时前
北京华恒智信助力传统制造与高新技术行业完成存量人才激活与组织效能重塑
学习
阿标的博客4 小时前
Python学习(三):Python程序的运行方式
开发语言·python·学习
斯维赤4 小时前
每天学习一个小算法:堆排序
学习·算法·排序算法
Edward111111114 小时前
4月25泛型
学习
南境十里·墨染春水4 小时前
linux学习进展 线程同步——条件变量
java·开发语言·学习
zhangyueping83854 小时前
大模型学习笔记-AI通识
人工智能·笔记·学习