> Linux Reviews > man >

gethostname


  1. gethostname.2.man


1. gethostname.2.man

Manpage of GETHOSTNAME

GETHOSTNAME

Section: Linux Programmer's Manual (2)
Updated: 2010-09-26
Index Return to Main Contents
 

名前

gethostname, sethostname - ホスト名の取得・設定をする  

書式

#include <unistd.h>

int gethostname(char *name, size_t len);
int sethostname(const char *name, size_t len);

glibc 向けの機能検査マクロの要件 (feature_test_macros(7) 参照):

gethostname():

glibc 2.12 以降: _BSD_SOURCE || _XOPEN_SOURCE >= 500
|| /* glibc 2.12 以降: */ _POSIX_C_SOURCE >= 200112L

sethostname():
_BSD_SOURCE || (_XOPEN_SOURCE && _XOPEN_SOURCE < 500)
 

説明

これらのシステムコールは、現在のプロセッサのホスト名を取得・変更するために 使用される。

sethostname() は、ホスト名を、文字配列 name で指定された値に設定する。 引き数 len には、 name のバイト数を指定する (そのため、 name では文字列終端の NULL バイトは必要ない)。

gethostname() は、NULL 終端されたホスト名を、 len バイトの長さの文字配列 name に格納して返す。 NULL 終端されたホスト名が格納先のバッファよりも長い場合は、 ホスト名は切り詰められ、エラーは返されない (下記の「注意」の節を参照)。 POSIX.1-2001 では、結果の切り詰めが発生した場合に、 返されたバッファに終端の NULL バイトが含まれているかどうかは 規定されていない。  

返り値

成功した場合 0 が返る。失敗した場合 -1 が返り、 errno がエラーの内容に従って設定される。  

エラー

EFAULT
name が不正なアドレスである。
EINVAL
len が負である。 sethostname() において len が許容された最大サイズを越えている。
ENAMETOOLONG
(glibc gethostname() で) len が実際のホスト名の長さよりも小さい (glibc バージョン 2.1 より前では、この状況で EINVAL が使用される)。
EPERM
sethostname() において、呼び出した人が CAP_SYS_ADMIN ケーパビリティ (capability) を持っていなかった。
 

準拠

SVr4, 4.4BSD (これらのインタフェースは 4.2BSD で初めて登場した)。 POSIX.1-2001 では gethostname() については規定しているが、 sethostname() は規定していない。  

注意

SUSv2 では「ホスト名が 255 バイトに制限される」ことを保証している。 POSIX.1-2001 では「ホスト名 (終端の NULL バイトは含まない) が HOST_NAME_MAX バイトに制限される」ことを保証している。 Linux では、 HOST_NAME_MAX は 64 に定義されており、 Linux 1.0 以降ではこれが上限となってきた (もっと古いカーネルでは 8 バイトの上限が適用されていた)。  

glibc での注意

GNU C ライブラリは、 gethostname() システムコールを利用していない。その代わり、 gethostname() をライブラリ関数として実装しており、 この関数は uname(2) を呼び出し、 uname(2) が返した nodename フィールド (の最大 len バイト) を name にコピーする。 コピーを行った際に、この関数は nodename の長さが len 以上かの確認を行い、 len 以上の場合には -1 を返し、 errnoENAMETOOLONG を設定する。 この場合、返された name には終端の NULL バイトは含まれない。

バージョン 2.2 より前の glibc では、 nodename の長さが len 以上の場合の扱いが異なる; len 以上の場合には、 name には何もコピーせず、関数は -1 を返し、 errnoENAMETOOLONG を設定する。  

関連項目

getdomainname(2), setdomainname(2), uname(2)


 

Index

名前
書式
説明
返り値
エラー
準拠
注意
glibc での注意
関連項目

This document was created by man2html using the manual pages.
Time: 17:38:26 GMT, October 23, 2013

SVENSKA - SVENSKA - SVENSKA - SVENSKA - nl - pl - SVENSKA