认识句柄、句柄和指针的异同
句柄(handler)就是一个编号,通常为4B无符号(unsigned int)编号。对计算机各种资源进行管理控制、处理时,进行编号,方便计算机的管理。其本质与“地址”(指针)完全相同,就是编号。
例如:文件管理系统,对于文件操作时,通常对当前操作的文件有一个独一无二的编号,以便在多个文件操作过程中,不至于混乱,这个编号通常叫做“文件句柄”。
这里我用任务管理器的截图让大家进一步看到编号的应用:
这里的PID其实就相当于句柄,每个正在运行的程序,都有一个独一无二的PID,方便计算机对它进行管理。
句柄与指针的异同
相同:
- 都是编号;
- 与其管理的资源单体之间存在一一对应的关系;
- 都满足从0开始编号,连续编号,只用二进制编号;
不相同:
- 指针是内存字节编号的特称,句柄是更为广泛意义上的计算机资源管理时所使用的编号;
- 指针在某些语言(特别是C语言)中,是特定的数据类型,且有其特定的操作;句柄是计算机资源管理程序的基础,不是特定的数据类型,也不存在特定的、语言级别的操作。