GETHOSTNAME(2) | Linux Programmer's Manual | GETHOSTNAME(2) |
名前
gethostname, sethostname -ホスト名の取得・設定をする書式
#include <unistd.h>glibc 向けの機能検査マクロの要件 ( feature_test_macros(7) 参照):
glibc 2.12 以降: _BSD_SOURCE || _XOPEN_SOURCE >= 500
|| /* glibc 2.12 以降: */ _POSIX_C_SOURCE >= 200112L
_BSD_SOURCE || (_XOPEN_SOURCE && _XOPEN_SOURCE < 500)
説明
これらのシステムコールは、現在のプロセッサのホスト名を取得・変更するために使用される。返り値
成功した場合は 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 を返し、 errno に ENAMETOOLONG を設定する。この場合、返された name には終端の NULL バイトは含まれない。関連項目
getdomainname(2), setdomainname(2), uname(2)この文書について
この man ページは Linux man-pages プロジェクトのリリース 3.51 の一部である。プロジェクトの説明とバグ報告に関する情報は http://www.kernel.org/doc/man-pages/ に書かれている。2010-09-26 | Linux |