GETHOSTNAME
Section: Linux Programmer's Manual (2)
Updated: 2007-07-26
Index
JM Home Page
roff page
名前
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():
_BSD_SOURCE || _XOPEN_SOURCE >= 500
sethostname():
_BSD_SOURCE || (_XOPEN_SOURCE && _XOPEN_SOURCE < 500)
説明
これらのシステムコールは、現在のプロセッサのホスト名を取得・変更するために
使用される。
gethostname()
システムコールは、(以前に
sethostname()
で設定された) NULL 終端されたホスト名を、
長さ len バイトの配列 name に返す。
配列の長さが NULL 終端されたホスト名に足りない場合、
エラーは返されないが、ホスト名は切り詰められる。
切り詰められたホスト名が NULL 終端されるかどうかは指定されていない。
返り値
成功した場合 0 が返る。失敗した場合 -1 が返り、
errno
がエラーの内容に従って設定される。
エラー
- EFAULT
-
name
が不正なアドレスである。
- EINVAL
-
len
が負である。または、
sethostname()
において
len
が許容された最大サイズを越えている。
または、Linux/i386 の
gethostname()
において
len
が実際の値よりも小さい
(最後のケースでは、glib 2.1 だと
ENAMETOOLONG
が返される)。
- 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
バイトに制限される」ことを保証している。
glibc での注意
GNU C ライブラリは、
gethostname()
をライブラリ関数として実装しており、
この関数は
uname(2)
を呼び出し、
uname(2)
が返した
nodename
フィールド (の最大
len
バイト) を
name
にコピーする。
コピーを行った際に、この関数は
nodename
の長さが
len
以上かの確認を行い、
len
以上の場合には -1 を返し、
errno
に
ENAMETOOLONG
を設定する。
バージョン 2.2 より前の glibc
では、
nodename
の長さが
len
以上の場合の扱いが異なる;
len
以上の場合には、
name
には何もコピーせず、関数は -1 を返し、
errno
に
ENAMETOOLONG
を設定する。
関連項目
getdomainname(2),
setdomainname(2),
uname(2)
Index
- 名前
-
- 書式
-
- 説明
-
- 返り値
-
- エラー
-
- 準拠
-
- 注意
-
- glibc での注意
-
- 関連項目
-
This document was created by
man2html,
using the manual pages.
Time: 04:31:43 GMT, November 19, 2007