Operating System
handle(핸들)이란?
worldint
2021. 6. 21. 21:27
핸들(Handle)에 대하여
: Win32 프로그래밍 관련 전체 목차 http://blog.naver.com/tipsware/221059977193 1. 운영체제와 리소스 ...
blog.naver.com
위의 블로그 읽고 정리한겁니당.
개요:
응용프로그램이 컴퓨터의 어떤 장치를 사용하기 위해서는(예를 들어 프린터 같은 것)
해당 장치에 연관된 운영체제의 리소스에 접근해야한다.
포인터를 사용하여 직접 리소스가 있는 주소에 접근할 수 있지만
응용프로그램이 직접 운영체제의 커널 정보(리소스)에 접근하면 보안이나 등등 위험이 있기 때문에
"핸들"이라는 것을 통해서 접근을 허락 하고있다.
핸들은 주소값을 정수로 치환한 값이다.
주소값과 핸들을 한쌍으로 정리한 테이블을 핸들 테이블이라한다
예를들어
응용프로그램이 어떤 리소스의 현재 정보를 확인하고 싶을때
그 주소가 `0x0E671027`이고 핸들값이 `100`이 라고 치자
그럼 응용프로그램은 핸들값 100만 알고 있고
api함수에 100을 주면 그에 해당하는 주소를 api가 알아서 접근해서 정보를 가져와준다
(여기서 api 함수란 win32의 api 함수를 말한다)
응용프로그램은 이 주소를 모르고 핸들 테이블을 참조하여
이 주소가 치환된 정수100을 가지고 이 리소스에 접근한다
아 우편번호 같은 개념이구나~! 하고 넘어갔다
*개념이 잘못되었다면 답글 부탁드립니다.