Other Alias
gethostid
ОБЗОР
#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), и поэтому, как правило, его не нужно изменять.
Только суперпользователь может вызывать sethostid().
ВОЗВРАЩАЕМОЕ ЗНАЧЕНИЕ
Функция gethostid() возвращает 32-битный идентификатор текущего узла,
установленный sethostid().
При успешном выполнении sethostid() возвращает 0; при ошибке — -1, а в errno задаётся код ошибки.
ОШИБКИ
Вызов sethostid() может завершиться со следующими ошибками:
EACCES Вызывающий не имеет прав на запись в файл, используемый для хранения ID узла.
EPERM Эффективный идентификатор пользователя или группы вызывающего процесса не совпадает с его соответствующим реальным идентификатором.
АТРИБУТЫ
Описание терминов данного раздела смотрите в attributes(7).
Интерфейс Атрибут Значение
gethostid()
безвредность в потоках: безвредно (MT-Safe hostid env locale)
sethostid()
безвредность в потоках: небезопасно (MT-Unsafe const:hostid)
СООТВЕТСТВИЕ СТАНДАРТАМ
42BSD; эти функции удалены в 4.4BSD. В SVr4 содержится gethostid(), но
отсутствует sethostid().
В POSIX.1-2001 и POSIX.1-2008 определена gethostid(), но отсутствует sethostid().
ЗАМЕЧАНИЯ
В реализации glibc hostid сохраняет значение в файле /etc/hostid (в
glibc до версии 2.2 используется файл /var/adm/hostid).
В реализации glibc, если gethostid() не может открыть файл, содержащий ID узла, она получает имя узла с помощью gethostname(2), передаёт это имя gethostbyname_r(3) для получения адреса IPv4 узла, и возвращает значение, получаемое преобразованием битов полученного адреса IPv4 (такое значение может быть не уникально).