Главная » 2017 » Ноябрь » 19 » man 2 gethostid
22:21
man 2 gethostid

SEO sprint - Всё для максимальной раскрутки!





ИМЯ


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 │
└────────────┴──────────────────────┴───────────────────────────┘
версии 2.2 используется файл /var/adm/hostid).

В реализации glibc, если gethostid() не может открыть файл, содержащий ID узла,
она получает имя узла с помощью gethostname(2), передаёт это имя
gethostbyname_r(3) для получения адреса IPv4 узла, и возвращает значение,
получаемое преобразованием битов полученного адреса IPv4 (такое значение может
быть не уникально).



ДЕФЕКТЫ


Невозможно достоверно сказать, что идентификатор является глобально уникальным.



СМОТРИТЕ ТАКЖЕ


hostid(1), gethostbyname(3)



Категория: (2) Системные вызовы ядра (функции языка Си) | Просмотров: 1942 | Добавил: Администратор | Рейтинг: 0.0/0
Всего комментариев: 0
avatar