什么叫句柄,句柄有什么用处?(windows 进程句柄)
什么叫句柄,句柄有什么用处?
句柄是一个标识符,是拿来标识对象或者项目的。
(图片来源网络,侵删)如果想更透彻一点地认识句柄,我可以告诉大家,句柄类似指向指针的指针,仅仅是类似,通过句柄可以找到对应的数据,但是不是二级指针。我们知道,所谓指针是一种内存地址。应用程序启动后,组成这个程序的各对象是驻留在内存中的。简单地理解,似乎我们只要获知这个内存的首地址,就可以随时用这个地址访问对象了。如果您真的这样认为,那您可就大错特错了。我们知道,Windows是一个以虚拟内存为基础的操作系统。在这种系统环境下,Windows内存管理器经常在内存中来回移动对象,以此来满足各种应用程序的内存需要。对象被移动意味着它的地址变化了。如果地址总是如此变化,我们该到哪里去找那一个对象呢?
为了解决这个问题,Windows操作系统为全体应用程序腾出一些内存单元,用来专门登记各应用程序的对象在内存中的地址的变化,而前者的物理地址在系统运行期间是始终保持不变的。Windows内存管理器移动了对象在内存中的位置后,会把该对象新的地址及时地告知给对应的句柄进行更新。这样我们只要知道这个句柄,就可以间接地知道对象具体在内存中的哪个位置了。这个地址是在对象装载(Load)时由系统分配给的,当对象卸载时(Unload)又释放给系统。
句柄是WINDOWS用来标识被应用程序所建立或使用的对象的唯一整数,WINDOWS使用各种各样的句柄标识诸如应用程序实例,窗口,控制,位图,GDI对象等等。
(图片来源网络,侵删)WINDOWS句柄有点象C语言中的文件句柄。Windows是一个以虚拟内存为基础的操作系统。在这种系统环境下,Windows内存管理器经常在内存中来回移动对象,以此来满足各种应用程序的内存需要。对象被移动意味着它的地址变化了。如果地址总是如此变化,我们该到哪里去找那一个对象呢? 为了解决这个问题,Windows操作系统为全体应用程序腾出一些内存单元,用来专门登记各应用程序的对象在内存中的地址的变化,而前者的物理地址在系统运行期间是始终保持不变的。Widows内存管理器移动了对象在内存中的位置后,会把该对象新的地址及时地告知给对应的句柄进行更新。这样我们只要知道这个句柄,就可以间接地知道对象具体在内存中的哪个位置了。这个地址是在对象装载(Load)时由系统分配给的,当对象卸载时(Unload)又释放给系统。怎么查看Windows进程/文件关联句柄?
应用背景: windows操作系统中,有时我们关闭程序后,一些相关的进程仍在后台运行,并访问着一些文件,使得我们无法对这些文件及其所属的文件夹进行删除、重命名等操作。 此时,如果知道这个文件/文件夹正在被哪个进程使用,就可以用任务管理器结束这个进程,然后就可以对文件进行修改了。(请谨慎决定是否结束关键的、可能会影响系统正常工作的进程。)查看方法:1.打开 资源管理器(Ctrl+Shift+Esc)
2.选择 性能 选项卡3.点击右下角的 资源监视器4.选择 概述 选项卡5.选择 “磁盘”
6.在“磁盘”下方弹出的列表中,第三列“文件”就是当前被进程打开的文件。可能需要最大化窗口并手动调整列宽才能看清。7.表中的第一列 映像 即是打开这个文件的进程名称,可考虑在任务管理器中结束该进程8.如果有重名的多个进程,以第二列 PID 为准
(图片来源网络,侵删)到此,以上就是小编对于windows进程句柄数的问题就介绍到这了,希望这2点解答对大家有用。