GETHOSTID - Linux手册页
Linux程序员手册 第3部分
更新日期: 2017-09-15
名称
gethostid,sethostid-获取或设置当前主机的唯一标识符
语法
#包括
长gethostid(void);
int sethostid(long hostid);
glibc的功能测试宏要求(请参阅feature_test_macros(7)):
gethostid():
- _BSD_SOURCE || _XOPEN_SOURCE>= 500
Since glibc 2.21: _DEFAULT_SOURCE In glibc 2.19 and 2.20: _DEFAULT_SOURCE || (_XOPEN_SOURCE && _XOPEN_SOURCE < 500) Up to and including glibc 2.19: _BSD_SOURCE || (_XOPEN_SOURCE && _XOPEN_SOURCE < 500)
说明
gethostid()和sethostid()分别获取或设置当前计算机的唯一32位标识符。 32位标识符旨在在现有的所有UNIX系统中唯一。这通常类似于gethostbyname(3)返回的本地计算机的Internet地址,因此通常无需设置。
sethostid()调用仅限于超级用户。
返回值
gethostid()返回由sethostid()设置的当前主机的32位标识符。
成功时,sethostid()返回0;否则,返回0。如果出现错误,则返回-1,并且将errno设置为指示错误。
错误说明
sethostid()可能因以下错误而失败:
- EACCES
- 调用者无权写入用于存储主机ID的文件。
- EPERM
- 呼叫过程的有效用户或组ID与相应的真实ID不同。
属性
有关本节中使用的术语的说明,请参见attribute(7)。
Interface | Attribute | Value |
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实现中,主机名存储在文件/ etc / hostid中。 (在2.2之前的glibc版本中,使用文件/ var / adm / hostid。)
在glibc实现中,如果gethostid()无法打开包含主机ID的文件,则它将使用gethostname(2)获得主机名,将该主机名传递给gethostbyname_r(3)以获得主机的IPv4地址,并返回一个值通过对IPv4地址进行位捻获得。 (此值可能不是唯一的。)
BUGS
无法确保标识符是全局唯一的。
另外参见
hostid(1),gethostbyname(3)
出版信息
这个页面是Linux手册页项目5.08版的一部分。有关项目的说明、有关报告错误的信息以及此页面的最新版本,请访问https://www.kernel.org/doc/man-pages/。