손잡이란 무엇인가요?
핸들은 숫자이며 일반적으로 현재 시스템에서는 정수와 동일한 자릿수입니다(예: 32비트 시스템에서는 4바이트).
이 숫자는 개체의 고유 식별자이며 개체와 일대일로 대응됩니다.
이 개체는 메모리 블록, 리소스 또는 서비스 컨텍스트(예: 소켓, 스레드) 등일 수 있습니다.
이 숫자는 그것이 나타내는 객체와의 고유한 대응을 보장할 수 있는 한 다양한 소스에서 나올 수 있습니다. 예를 들어 메모리 주소, 핸들 테이블의 일련 번호를 사용할 수 있습니다. 자동 증가 ID를 사용하거나 위 값을 사용하여 상수를 XOR하세요.
확장 정보:
Windows에서 핸들을 설정해야 하는 이유는 근본적으로 메모리 관리 메커니즘의 문제 때문입니다. 즉, 데이터의 주소가 필요합니다. 변경 후에는 관리 변경 사항(호적 관리와 마찬가지로)을 기록해야 하므로 시스템에서는 핸들을 사용하여 데이터 주소의 변경 사항을 기록합니다.
전통적으로 운영 체제 커널과 시스템 서비스 API는 C 언어로 인터페이스되지만 내부 설계 개념은 OO이므로 개체 개념은 있지만 해당 언어 구문 지원은 없습니다.
핸들의 기능은 C 언어 환경에서 C 객체 포인터를 대체하는 것입니다. 핸들을 만드는 것은 생성이고, 핸들을 파괴하는 것은 파괴이며, 핸들이 있는 함수를 호출하는 것은 이 포인터.
C 인터페이스가 있는 시스템 API가 있는 경우 핸들은 없지만 Windows com ptr과 같은 IXXXPtr과 같은 인터페이스 포인터가 있습니다.
바이두백과사전-핸들