gethostname 関数 (winsock2.h)
gethostname 関数は、ローカル コンピューターの標準ホスト名を取得します。
構文
int WSAAPI gethostname(
[out] char *name,
[in] int namelen
);
パラメーター
[out] name
ローカル ホスト名を受け取るバッファーへのポインター。
[in] namelen
name パラメーターが指すバッファーの長さ (バイト単位)。
戻り値
エラーが発生しない場合、 gethostname は 0 を返します。 それ以外の場合は、SOCKET_ERRORを返し、 WSAGetLastError を呼び出すことによって特定のエラー コードを取得できます。
エラー コード | 意味 |
---|---|
name パラメーターが NULL ポインターであるか、ユーザー・アドレス・スペースの有効な部分ではありません。 namelen パラメーターで指定されたバッファー サイズが小さすぎて完全なホスト名を保持しないと、このエラーも返されます。 | |
この関数を使用する前に、 WSAStartup 呼び出しが正常に行われる必要があります。 | |
ネットワーク サブシステムが失敗しました。 | |
ブロックしている Windows Sockets 1.1 呼び出しが進行中であるか、サービス プロバイダーがコールバック関数を処理しています。 |
注釈
gethostname 関数は、ローカル ホストの名前を name パラメーターで指定されたバッファーに返します。 ホスト名は null で終わる文字列として返されます。 ホスト名の形式は Windows ソケット プロバイダーによって異なります。単純なホスト名を指定することも、完全修飾ドメイン名にすることもできます。 ただし、返される名前は 、gethostbyname と WSAAsyncGetHostByName によって正常に解析されます。
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 バイト以下である必要があります。 そのため、 name パラメーターに 256 バイトのバッファーが渡され、 namelen パラメーターが 256 に設定されている場合、バッファー サイズは常に適切です。
Windows Phone 8: この関数は、Windows Phone 8 以降の Windows Phone ストア アプリでサポートされています。
Windows 8.1とWindows Server 2012 R2: この関数は、Windows 8.1、Windows Server 2012 R2 以降の Windows ストア アプリでサポートされています。
要件
要件 | 値 |
---|---|
サポートされている最小のクライアント | Windows 8.1、Windows Vista [デスクトップ アプリ |UWP アプリ] |
サポートされている最小のサーバー | Windows Server 2003 [デスクトップ アプリのみ | UWP アプリ] |
対象プラットフォーム | Windows |
ヘッダー | winsock2.h (Winsock2.h を含む) |
Library | Ws2_32.lib |
[DLL] | Ws2_32.dll |