GETHOSTID(3)              (2017-09-15)               GETHOSTID(3)

     NAME
          gethostid, sethostid - get or set the unique identifier of
          the current host

     SYNOPSIS
          #include <unistd.h>

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

     Feature Test Macro Requirements for glibc (see
     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)

     DESCRIPTION
          gethostid() and sethostid() respectively get or set a unique
          32-bit identifier for the current machine.  The 32-bit iden-
          tifier was intended to be unique among all UNIX  systems  in
          existence.  This normally resembles the Internet address for
          the local machine, as returned by gethostbyname(3), and thus
          usually never needs to be set.

          The sethostid() call is restricted to the superuser.

     RETURN VALUE
          gethostid() returns the 32-bit identifier  for  the  current
          host as set by sethostid().

          On success, sethostid() returns 0; on error, -1 is returned,
          and errno is set to indicate the error.

     ERRORS
          sethostid() can fail with the following errors:

          EACCES
               The caller did not have permission to write to the file
               used to store the host ID.

          EPERM
               The calling process's effective user or group ID is not
               the same as its corresponding real ID.

     Page 1                        Linux             (printed 5/18/22)

     GETHOSTID(3)              (2017-09-15)               GETHOSTID(3)

     ATTRIBUTES
          For an explanation of the terms used in  this  section,  see
          attributes(7).     allbox;    lb    lb    lbw25   l   l   l.
          Interface Attribute Value   T{    gethostid()    T}   Thread
          safety  MT-Safe hostid env locale T{ sethostid() T}   Thread
          safety  MT-Unsafe const:hostid

     CONFORMING TO
          4.2BSD;  these  functions  were  dropped  in  4.4BSD.   SVr4
          includes gethostid() but not sethostid().

          POSIX.1-2001 and POSIX.1-2008 specify  gethostid()  but  not
          sethostid().

     NOTES
          In the glibc implementation, the hostid  is  stored  in  the
          file  /etc/hostid.  (In  glibc versions before 2.2, the file
          /var/adm/hostid was used.)

          In the glibc implementation, if gethostid() cannot open  the
          file  containing  the  host ID, then it obtains the hostname
          using    gethostname(2),    passes    that    hostname    to
          gethostbyname_r(3)  in  order  to  obtain  the  host's  IPv4
          address, and returns a value obtained by  bit-twiddling  the
          IPv4 address.  (This value may not be unique.)

     BUGS
          It is impossible to ensure that the identifier  is  globally
          unique.

     SEE ALSO
          hostid(1), gethostbyname(3)

     COLOPHON
          This page is part of release 5.10  of  the  Linux  man-pages
          project.   A  description  of the project, information about
          reporting bugs, and the latest version of this page, can  be
          found at https://www.kernel.org/doc/man-pages/.

     Page 2                        Linux             (printed 5/18/22)