GETHOSTID(3) | Linux Programmer's Manual | GETHOSTID(3) |
名前¶
gethostid, sethostid - 現在のホストの固有の識別子を取得/設定する
書式¶
#include <unistd.h>
long gethostid(void);
int sethostid(long hostid);
gethostid():
_BSD_SOURCE || _XOPEN_SOURCE >= 500
glibc 2.21 以降:
_DEFAULT_SOURCE
glibc 2.19 と 2.20:
_DEFAULT_SOURCE || (_XOPEN_SOURCE && _XOPEN_SOURCE < 500)
glibc 2.19 以前:
_BSD_SOURCE || (_XOPEN_SOURCE && _XOPEN_SOURCE < 500)
説明¶
gethostid() と sethostid() は、それぞれ、現在使用しているホストに固有の 32 ビットの識別子の 取得/設定を行う。 この 32 ビットの識別子は、現在存在している全ての UNIX システム の中で唯一になるようにすることを意図したものだった。通常は gethostbyname(3) により返されるローカルマシンの Internet アドレスが代わりに使用され、 普通は識別子をあえて設定する必要はない。
sethostid() はスーパーユーザーしか使用できない。
返り値¶
gethostid() は、 sethostid() によって設定された、現在使用しているホストの 32 ビットの識別子の値を返す。
成功すると、 sethostid() は 0 を返す。 エラーの場合、-1 を返し、 errno にエラーを示す値を設定する。
エラー¶
sethostid() は以下のエラーで失敗する可能性がある。
属性¶
この節で使用されている用語の説明については、 attributes(7) を参照。
インターフェース | 属性 | 値 |
gethostid() | Thread safety | MT-Safe hostid env locale |
sethostid() | Thread safety | MT-Unsafe const:hostid |
準拠¶
4.2BSD。4.4BSD ではこれらの関数はなくなった。 SVr4 には gethostid() は含まれているが、 sethostid() は含まれていない。
POSIX.1-2001 と POSIX.1-2008 では、 gethostid() は規定されているが、 sethostid() は規定されていない。
注意¶
glibc の実装では、 hostid はファイル /etc/hostid に保存される (バージョン 2.2 より前の glibc では、 /var/adm/hostid が使用されていた)。
glibc の実装では、ホスト ID を保存したファイルを オープンできなかった場合、 gethostid() は gethostname(2) を使ってホスト名を入手し、そのホスト名を gethostbyname_r(3) に渡しホストの IPv4 アドレスを取得して、 その IPv4 アドレスのビット入れ替えを行った値を返す。
バグ¶
識別子が世界中で一意であることを保証することはできない。
関連項目¶
この文書について¶
この man ページは Linux man-pages プロジェクトのリリース 5.10 の一部である。プロジェクトの説明とバグ報告に関する情報は https://www.kernel.org/doc/man-pages/ に書かれている。
2017-09-15 | Linux |