Scroll to navigation

GETHOSTID(3) Руководство программиста Linux GETHOSTID(3)

ИМЯ

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() and sethostid() respectively get or set a unique 32-bit identifier for the current machine. The 32-bit identifier 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.

Только суперпользователь может вызывать sethostid().

ВОЗВРАЩАЕМОЕ ЗНАЧЕНИЕ

Функция gethostid() возвращает 32-битный идентификатор текущего узла, установленный sethostid().

При успешном выполнении sethostid() возвращает 0; при ошибке — -1, а в errno задаётся код ошибки.

ОШИБКИ

Вызов sethostid() может завершиться со следующими ошибками:

Вызывающий не имеет прав на запись в файл, используемый для хранения ID узла.
Эффективный идентификатор пользователя или группы вызывающего процесса не совпадает с его соответствующим реальным идентификатором.

АТРИБУТЫ

Описание терминов данного раздела смотрите в 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 (такое значение может быть не уникально).

ДЕФЕКТЫ

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

СМ. ТАКЖЕ

hostid(1), gethostbyname(3)

ЗАМЕЧАНИЯ

Эта страница является частью проекта Linux man-pages версии 5.10. Описание проекта, информацию об ошибках и последнюю версию этой страницы можно найти по адресу https://www.kernel.org/doc/man-pages/.

ПЕРЕВОД

Русский перевод этой страницы руководства был сделан Azamat Hackimov <azamat.hackimov@gmail.com>, Dmitry Bolkhovskikh <d20052005@yandex.ru>, Vladislav <ivladislavefimov@gmail.com>, Yuri Kozlov <yuray@komyakino.ru> и Иван Павлов <pavia00@gmail.com>

Этот перевод является бесплатной документацией; прочитайте Стандартную общественную лицензию GNU версии 3 или более позднюю, чтобы узнать об условиях авторского права. Мы не несем НИКАКОЙ ОТВЕТСТВЕННОСТИ.

Если вы обнаружите ошибки в переводе этой страницы руководства, пожалуйста, отправьте электронное письмо на man-pages-ru-talks@lists.sourceforge.net.

15 сентября 2017 г. Linux