什么是过程句柄?


Answers:


25

进程句柄是一个整数值,用于标识Windows的进程。Win32 API称它们为HANDLE;Windows的句柄称为HWND,模块的句柄称为HMODULE。

进程内的线程具有线程句柄,文件和其他资源(例如注册表项)也具有句柄。

您在“任务管理器”中看到的句柄数为“ 进程的对象表中的对象句柄数 ”。实际上,这是此进程已打开的所有句柄的总和。

如果您不释放对资源的句柄,则其他人可能无法访问它-这就是为什么您有时无法删除文件的原因,因为Windows声称该文件正在使用中(请参阅有关句柄泄漏和Process Explorer的本文)。

另外,各种处理都有每个进程的限制。 这是一个例子

通常,如果您打开句柄而不关闭它们,则类似于泄漏内存。您应该弄清楚发生了什么并修复它。关于句柄泄漏有一篇不错的CodeProject文章


2

句柄是一个整数值,用于寻址对象。例如:

int handle = open( "foo.txt", OTHER_STUFF_HERE );

open() 系统调用返回一个句柄,一个小的非负整数,用于后续的系统调用(read(2),write(2),lseek(2),fcntl(2)等))。

Windows句柄与Unix文件描述符(FD)非常相似。


By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.