gethostname 関数 (winsock.h)
gethostname 関数は、ローカル コンピューターの標準ホスト名を取得します。
構文
int gethostname(
[out] char *name,
[in] int namelen
);
パラメーター
[out] name
ローカル ホスト名を受け取るバッファーへのポインター。
[in] namelen
name パラメーターが指すバッファーの長さ (バイト単位)。
戻り値
エラーが発生しない場合、 gethostname は 0 を返します。 それ以外の場合は、SOCKET_ERRORを返し、 WSAGetLastError を呼び出すことによって特定のエラー コードを取得できます。
エラー コード | 意味 |
---|---|
name パラメーターが NULL ポインターであるか、ユーザー アドレス空間の有効な部分ではありません。 このエラーは、 namelen パラメーターで指定されたバッファー サイズが小さすぎて完全なホスト名を保持できる場合にも返されます。 | |
この関数を使用する前に 、WSAStartup 呼び出しが正常に行われる必要があります。 | |
ネットワーク サブシステムが失敗しました。 | |
ブロックしている Windows ソケット 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 |
ヘッダー | winsock.h (Winsock2.h を含む) |
Library | Ws2_32.lib |
[DLL] | Ws2_32.dll |