gethostname 함수(winsock.h)

gethostname 함수는 로컬 컴퓨터의 표준 호스트 이름을 검색합니다.

구문

int gethostname(
  [out] char *name,
  [in]  int  namelen
);

매개 변수

[out] name

로컬 호스트 이름을 수신하는 버퍼에 대한 포인터입니다.

[in] namelen

name 매개 변수가 가리키는 버퍼의 길이(바이트)입니다.

반환 값

오류가 발생하지 않으면 gethostname 은 0을 반환합니다. 그렇지 않으면 SOCKET_ERROR 반환되고 WSAGetLastError를 호출하여 특정 오류 코드를 검색할 수 있습니다.

오류 코드 의미
WSAEFAULT
name 매개 변수는 NULL 포인터이거나 사용자 주소 공간의 유효한 부분이 아닙니다. namelen 매개 변수로 지정된 버퍼 크기가 너무 작아서 전체 호스트 이름을 보유하지 못하면 이 오류가 반환됩니다.
WSANOTINITIALISED
이 함수를 사용하기 전에 성공적인 WSAStartup 호출이 발생해야 합니다.
WSAENETDOWN
네트워크 하위 시스템이 실패했습니다.
WSAEINPROGRESS
차단 Windows Sockets 1.1 호출이 진행 중이거나 서비스 공급자가 여전히 콜백 함수를 처리하고 있습니다.

설명

gethostname 함수는 로컬 호스트의 이름을 name 매개 변수로 지정된 버퍼에 반환합니다. 호스트 이름은 null로 끝나는 문자열로 반환됩니다. 호스트 이름의 형식은 Windows 소켓 공급자에 따라 달라집니다. 간단한 호스트 이름이거나 정규화된 도메인 이름이 될 수 있습니다. 그러나 반환된 이름은 gethostbynameWSAAsyncGetHostByName을 통해 성공적으로 구문 분석됩니다.

name 매개 변수가 가리키는 버퍼에서 반환되는 이름의 최대 길이는 네임스페이스 공급자에 따라 달라집니다.

gethostname 함수가 Windows Server 2008, Windows Server 2003 또는 Windows 2000 Server의 클러스터 리소스에서 사용되고 CLUSTER_NETWORK_NAME 환경 변수가 정의된 경우 이 환경 변수의 값이 실제 호스트 이름을 재정의하고 반환됩니다. 클러스터 리소스에서 CLUSTER_NETWORK_NAME 환경 변수에는 클러스터 이름이 포함됩니다.

gethostname 함수는 네임스페이스 공급자를 쿼리하여 Svgguid.h 헤더 파일에 정의된 SVCID_HOSTNAME GUID를 사용하여 로컬 호스트 이름을 확인합니다. 네임스페이스 공급자가 응답하지 않으면 gethostname 함수는 로컬 컴퓨터의 NetBIOS 이름을 반환합니다.

name 매개 변수가 가리키는 버퍼에서 반환된 문자열의 최대 길이(바이트)는 네임스페이스 공급자에 따라 달라지지만 이 문자열은 256바이트 이하여야 합니다. 따라서 256바이트 버퍼가 name 매개 변수에 전달되고 namelen 매개 변수가 256으로 설정된 경우 버퍼 크기는 항상 적절합니다.

참고 로컬 호스트 이름이 구성되지 않은 경우 gethostname이 성공하고 gethostbyname 또는 WSAAsyncGetHostByName이 resolve 수 있는 토큰 호스트 이름을 반환해야 합니다.
 

Windows Phone 8: 이 함수는 Windows Phone 8 이상에서 Windows Phone 스토어 앱에서 지원됩니다.

Windows 8.1Windows Server 2012 R2: 이 함수는 Windows 8.1, Windows Server 2012 R2 이상에서 Windows 스토어 앱에서 지원됩니다.

요구 사항

요구 사항
지원되는 최소 클라이언트 Windows 8.1, Windows Vista [데스크톱 앱 | UWP 앱]
지원되는 최소 서버 Windows Server 2003 [데스크톱 앱 | UWP 앱]
대상 플랫폼 Windows
헤더 winsock.h(Winsock2.h 포함)
라이브러리 Ws2_32.lib
DLL Ws2_32.dll

추가 정보

GetAddrInfoW

WSAAsyncGetHostByName

Winsock 함수

Winsock 참조

gethostbyname