gethostid

GETHOSTID(3)                Linux Programmer's Manual               GETHOSTID(3)



名前
       gethostid, sethostid - 現在のホストの固有の識別子を取得/設定する

書式
       #include <unistd.h>

       long gethostid(void);
       int sethostid(long hostid);

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

       gethostid():
           _BSD_SOURCE || _XOPEN_SOURCE >= 500 ||
           _XOPEN_SOURCE && _XOPEN_SOURCE_EXTENDED
       sethostid():
           _BSD_SOURCE || (_XOPEN_SOURCE && _XOPEN_SOURCE < 500)

説明
       gethostid()  と sethostid()  は、それぞれ、現在使用しているホストに固有の 32 ビットの識別子の 取得/設定を行う。
       この 32 ビットの識別子は、現在存在している全ての UNIX システム の中で唯一になるように決められる。通常は
       gethostbyname(3)  により返されるローカルマシンの Internet アドレスが代わりに使用され、
       普通は識別子をあえて設定する必要はない。

       sethostid()  はスーパーユーザーしか使用できない。

返り値
       gethostid()  は、 sethostid()  によって設定された、現在使用しているホストの 32 ビットの識別子の値を返す。

       成功すると、 sethostid()  は 0 を返す。 エラーの場合、-1 を返し、 errno にエラーを示す値を設定する。

エラー
       sethostid()  は以下のエラーで失敗する可能性がある。

       EACCES 呼び出し元がホスト ID を保存するのに使用されるファイルへの 書き込み許可を持っていなかった。

       EPERM  呼び出し元プロセスの実効 UID/GID が対応する実 UID/GID と同じではない。

準拠
       4.2BSD。4.4BSD ではこれらの関数はなくなった。 SVr4 には gethostid()  は含まれているが、 sethostid()
       は含まれていない。 POSIX.1-2001 では、 gethostid()  は規定されているが、 sethostid()
       は規定されていない。

注意
       glibc の実装では、 hostid はファイル /etc/hostid に保存される (バージョン 2.2 より前の glibc では、
       /var/adm/hostid が使用されていた)。

       glibc の実装では、ホスト ID を保存したファイルを オープンできなかった場合、 gethostid()  は gethostname(2)
       を使ってホスト名を入手し、そのホスト名を gethostbyname_r(3)  に渡しホストの IPv4 アドレスを取得して、 その IPv4
       アドレスのビット入れ替えを行った値を返す。

バグ
       識別子が世界中で一意であることを保証することはできない。

関連項目
       hostid(1), gethostbyname(3)

この文書について
       この man ページは Linux man-pages プロジェクトのリリース 3.79 の一部
       である。プロジェクトの説明とバグ報告に関する情報は http://www.kernel.org/doc/man-pages/ に書かれている。



Linux                              2010-09-20                       GETHOSTID(3)