gethostbyaddr_r 예제

이러한 함수는 호스트 이름과 IP 주소 간에 앞뒤로 매핑됩니다. 예를 들어 « www.example.com »이 있는 경우 gethostbyname()를 사용하여 IP 주소를 얻고 구조체 in_addr에 저장할 수 있습니다. 응용 프로그램은 조회 프로세스 중에 사용할 gethostbyaddr_r()에 대한 버퍼를 제공해야 합니다. 버퍼는 buf에 의해 참조되며 크기는 buflen입니다. 버퍼의 크기가 충분하지 않으면 gethostbyaddr_r()이 실패하여 ERANGE를 반환할 수 있습니다. 데이터베이스에서 일치하는 항목이 있는 경우 gethostbyaddr_r()는 관련 정보를 result_buf에서 참조하는 응용 프로그램 제공된 호스트 구조에 복사하고 *result에서 이 구조에 대한 포인터를 반환합니다. 일치하는 항목이 없는 경우 *result는 null 포인터로 설정됩니다. 추가 오류 정보는 h_errnop에서 참조하는 변수로 설정되어야 합니다. gethostbyaddr_r()는 호스트 주소 일치에 대한 네트워크 호스트 데이터베이스를 검색하는 gethostbyaddr()의 재진입 버전입니다. 재진입 함수 gethostbyname_r() 및 gethostbyaddr_r()는 오류가 발생시 h_errnop이 가리키는 정수를 이러한 값 중 하나로 설정합니다.

성공시 gethostbyaddr_r() 함수는 0을 반환합니다. 반환 값이 ERANGE인 경우 buflen으로 표시된 버퍼 buf의 크기가 너무 작습니다. gethostbyaddr_r() 함수가 다른 값을 반환하는 경우 h_errnop에서 참조하는 변수는 gethostbyaddr()에 대한 원인을 나타내도록 설정되어야 합니다. 재진입 함수에서 반환되는 포인터가 gethostbyname_r(), gethostbyaddr_r() 및 gethostent_r()이 NULL이 아닌 경우 호출자가 제공한 결과 포인터와 항상 동일합니다. netdir 함수에는 gethostent() 및 gethostent_r()의 유사체가 없으므로 이러한 열거 함수는 nsswitch.conf의 호스트 항목으로 바로 이동합니다. 따라서 열거는 gethostbyname(), gethostbyname_r(), gethostbyaddr(및 gethostbyaddr_r)에서 사용하는 것과 다른 소스의 결과를 반환할 수 있습니다. http://www.lwn.net 같은 이름을 IP 번호로 변환하는 과정은 매우 복잡합니다. 그것은 /etc /resolv.conf, /etc/hosts 및 /etc/nsswitch.conf와 같은 파일을 포함하여 로컬 시스템의 /etc 디렉터리에서 몇 가지 파일을 포함합니다.

로컬 시스템이 구성되는 방식에 따라 다른 파일및 데몬 프로세스도 재생될 수 있습니다. 예를 들어 이러한 파일을 참조한 후 이름 서버를 쿼리할 수 있으며, 이 서버자체는 쿼리를 다른 이름 서버로 전달할 수 있습니다. 이러한 모든 복잡성은 응용 프로그램 프로그램을 작성할 때 실제로 생각하고 싶지 않은 세부 사항을 나타냅니다. 재진입 함수 gethostbyname_r(), gethostbyaddr_r() 및 gethostent_r()은 NULL을 반환하고 호출자가 제공한 버퍼의 길이가 결과를 저장할 만큼 충분히 크지 않은 경우 errno를 ERANGE로 설정합니다. 다중 스레드 응용 프로그램에서 errno의 적절한 사용 및 해석은 Intro(2)를 참조하십시오. 여기에 서버가 시작되어 와일드 서버 주소 `*`를 사용하여 백그라운드로 배치됩니다. 이렇게 하면 이 예제에서는 재진입 인터페이스gethostbyname_r(), gethostbyaddr_r(및 gethostent_r))이 커밋되지 않은 기준으로이 릴리스에 포함되며 변경 되거나 제거 될 수 있습니다. 향후 사소한 릴리스에서. gethostbyname(), gethostbyname_r(), gethostbyaddr() 및 gethostbyaddr_r() 함수는 요청된 항목을 성공적으로 찾을 경우 각각 구조형 호스트에 대한 포인터를 반환합니다. 그렇지 않으면 NULL을 반환합니다.

By | 2019-08-02T20:20:35+00:00 août 2nd, 2019|Non classé|Commentaires fermés sur gethostbyaddr_r 예제

About the Author: