Provided by: manpages-ru-dev_4.21.0-2_all bug

ИМЯ

       gethostid, sethostid - возвращает или назначает уникальный идентификатор текущего узла

LIBRARY

       Standard C library (libc, -lc)

СИНТАКСИС

       #include <unistd.h>

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

   Требования макроса тестирования свойств для glibc (см. feature_test_macros(7)):

       gethostid():
           Since glibc 2.20:
               _DEFAULT_SOURCE || _XOPEN_SOURCE >= 500
           Up to and including glibc 2.19:
               _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() может завершиться со следующими ошибками:

       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().

ЗАМЕЧАНИЯ

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

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

ДЕФЕКТЫ

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

СМ. ТАКЖЕ

       hostid(1), gethostbyname(3)

ПЕРЕВОД

       Русский   перевод   этой    страницы    руководства    был    сделан    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 ⟨https://www.gnu.org/licenses/gpl-3.0.html⟩ или более позднюю, чтобы
       узнать об условиях авторского права. Мы не несем НИКАКОЙ ОТВЕТСТВЕННОСТИ.

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