句柄(handle)是什么

句柄简单来讲就是二维指针,也就是指针的指针

  • 句柄用来标识一切可以标识的对象,一个socket,一个文件,一个窗口

既然说到标识,是怎么标识的呢


其实我们的程序的一次运行中,相应的虚拟内存有一块专门存放句柄的区域,这块区域存放的是另一个内存区域的地址,这样的话只是一级指针,试想一下,那么这个句柄找到的就是那个对象的首地址,假设这个对象就是一个文件吧,然后我们在文件里面增加了一点东西,那么文件的下一个对象的内存空间是不是就被占了?然后我们通过句柄找下一个对象的时候找到的不是下一个对象的首地址,而是上一个文件增加后的内容


所以,我们就需要在进行一个映射,句柄找到一个内存区域,这个内存区域并不直接存放对象,而是存放这一时刻真正的对象的内存地址,注意是这一时刻,因为程序在运行时经常变化,所以句柄指向的那块内存区域的值是经常变化的--也就是对象所在的区域是会变动的


注意:程序的一次运行称为进程,这次运行和下次运行对应的句柄一般是不同的,因为操作系统无法保证每次运行的内存空间都是那一块,这就涉及到程序装入内存的问题

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值