返回值

gethostid()返回由sethostid()设置的当前主机的32位标识符。

成功时,sethostid()返回0;否则,返回0。如果出现错误,则返回-1,并且将errno设置为指示错误。

遵循规范

4.2BSD;这些功能已在4.4BSD中删除。 SVr4包含gethostid()但不包含sethostid()。

POSIX.1-2001和POSIX.1-2008指定gethostid(),但不指定sethostid()。

GETHOSTID - Linux手册页

Linux程序员手册 第3部分
更新日期: 2017-09-15

另外参见

hostid(1),gethostbyname(3)

语法

#包括

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

glibc的功能测试宏要求(请参阅feature_test_macros(7)):

gethostid():

_BSD_SOURCE || _XOPEN_SOURCE>= 500
sethostid():
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)

备注

在glibc实现中,主机名存储在文件/ etc / hostid中。 (在2.2之前的glibc版本中,使用文件/ var / adm / hostid。)

在glibc实现中,如果gethostid()无法打开包含主机ID的文件,则它将使用gethostname(2)获得主机名,将该主机名传递给gethostbyname_r(3)以获得主机的IPv4地址,并返回一个值通过对IPv4地址进行位捻获得。 (此值可能不是唯一的。)

名称

gethostid,sethostid-获取或设置当前主机的唯一标识符

出版信息

这个页面是Linux手册页项目5.08版的一部分。有关项目的说明、有关报告错误的信息以及此页面的最新版本,请访问https://www.kernel.org/doc/man-pages/

说明

gethostid()和sethostid()分别获取或设置当前计算机的唯一32位标识符。 32位标识符旨在在现有的所有UNIX系统中唯一。这通常类似于gethostbyname(3)返回的本地计算机的Internet地址,因此通常无需设置。

sethostid()调用仅限于超级用户。

BUGS

无法确保标识符是全局唯一的。

属性

有关本节中使用的术语的说明,请参见attribute(7)。

InterfaceAttributeValue
gethostid()Thread safetyMT-Safe hostid env locale
sethostid()Thread safetyMT-Unsafe const:hostid

错误说明

sethostid()可能因以下错误而失败:

EACCES
调用者无权写入用于存储主机ID的文件。
EPERM
呼叫过程的有效用户或组ID与相应的真实ID不同。
日期:2019-08-20 18:01:16 来源:oir作者:oir