"핸들"은 "객체/리소스, 즉 특정 대상을 작동"하는 데 사용되는데, "핸들"이 정확히 무엇을 의미하나요?
"핸들"은 "객체/리소스, 즉 특정 대상을 작동"하는 데 사용되는데, "핸들"이 정확히 무엇을 의미하나요?
물체는 물건과 같고, 손잡이는 물건의 휴대폰 번호와 같습니다. 물건이 어디에 있는지, 무엇을 하고 있는지 걱정하지 않아도 됩니다. 필요할 때 전화하고, 풀어도 전화가 왔다.
句柄
의 영어 단어는 handle
입니다.
핸들은 콜백 함수입니다.
句柄
(handle)은 의미적으로 把手
로 이해될 수 있습니다. 이 핸들을 사용하여 리소스를 가져옵니다. 손잡이를 당기는 것은 자원을 잡는 것과 같고, 손잡이를 조작하는 것은 단서를 따라 자원을 조작하는 것과 같습니다. 예:
<code class="php">// 建立资源 $ch = curl_init(); // 根据句柄操作资源 curl_setopt($ch, CURLOPT_URL, $url); curl_setopt($ch, CURLOPT_HEADER, TRUE); curl_setopt($ch, CURLOPT_NOBODY, TRUE); // remove body curl_setopt($ch, CURLOPT_RETURNTRANSFER, TRUE); // 根据句柄执行这个资源 $head = curl_exec($ch); </code>
love handle
라는 영어 단어도 있는데, 꼬집고 꼬집을 수 있는 배 주위의 작은 지방 덩어리를 뜻합니다. 직역하면 "사랑의 손잡이"로 이해될 수 있습니다.
특정 상태를 유지하는 객체인 채널과 비슷합니다.
일부 리소스는 특성상 직접 조작이 불가능하여 핸들을 통해 조작해야 합니다.
예:
데이터베이스를 운영하려면 아이디가 필요하므로, 데이터베이스에 로그인한 후의 핸들에는 데이터베이스를 운영하기 위한 아이디 정보가 담겨있습니다.
파일 읽기 및 쓰기에는 파일 포인터 위치가 있습니다. 읽기 및 쓰기는 포인터 위치를 제어해야 합니다. 핸들은 상태 저장 채널을 제공합니다.
타이머는 상태입니다. 타이밍 상태는 핸들에 할당됩니다. 무언가가 트리거되면 핸들을 처리할 수 있습니다(타이머 취소, 미리 트리거).
애플리케이션은 객체(데이터 파일, 사용자 정의 데이터 구조 등)에 대해 일부 작업을 수행해야 하는 경우가 많으며, 핸들은 단순히 프로그램이 시작된 후 이러한 객체에 대한 포인터로 이해될 수 있습니다. 한편으로는 프로세서 스케줄링 및 기타 이유로 인해 발생합니다. 반면에 대부분의 현재 운영 체제는 가상 메모리 공간을 기반으로 합니다. 이 경우 메모리 관리자는 종종 개체를 앞뒤로 이동합니다. 현재 요구 사항을 충족하기 위해 고정된 메모리 주소를 가리키는 포인터에만 의존한다면 핸들은 다음과 같이 말할 수 있습니다. 포인터는 비록 객체를 직접적으로 가리키지는 않지만 메모리에 있는 객체의 변화를 파악하고 간접적으로 객체를 얻는 데 사용될 수 있습니다
즉, 메모리에 있는 실제 객체의 주소는 일반적으로 고정되어 있지 않으며 고정된 핸들은 메모리에서 해당 객체의 위치를 설명합니다
C 언어에는 구조에 대한 포인터가 있습니다