ИМЯ gethostid, sethostid - возвращает или назначает уникальный идентификатор текущего узла
ОБЗОР #include <unistd.h>
long gethostid(void); int sethostid(long hostid);
Требования макроса тестирования свойств для glibc (см. feature_test_macros(7)):
gethostid(): _BSD_SOURCE || _XOPEN_SOURCE >= 500 sethostid(): начиная с glibc 2.21: _DEFAULT_SOURCE в glibc 2.19 и 2.20: _DEFAULT_SOURCE || (_XOPEN_SOURCE && _XOPEN_SOURCE < 500) до glibc 2.19, включительно: _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(), но отсутствует имя узла с помощью gethostname(2), передаёт это имя gethostbyname_r(3) для получения адреса IPv4 узла, и возвращает значение, получаемое преобразованием битов полученного адреса IPv4 (такое значение может быть не уникально).
ДЕФЕКТЫ Невозможно достоверно сказать, что идентификатор является глобально уникальным.
СМОТРИТЕ ТАКЖЕ hostid(1), gethostbyname(3)
|