gethostid(3)

НАИМЕНОВАНИЕ
gethostid, sethostid - возвращает или назначает уникальный идентификатор текущего узла

БИБЛИОТЕКА
Стандартная библиотека языка C (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

ВЕРСИИ
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 (такое значение может быть не уникально).

СТАНДАРТЫ

gethostid()
    POSIX.1-2008.

sethostid()
    Отсутствуют.

ИСТОРИЯ
4.2BSD; dropped in 4.4BSD. SVr4 and POSIX.1-2001 include gethostid() but not sethostid().

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

СМОТРИТЕ ТАКЖЕ
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 (GNU General Public License - GPL, https://www.gnu.org/licenses/gpl-3.0.html версии 3 или более поздней) в отношении авторского права, но БЕЗ КАКИХ-ЛИБО ГАРАНТИЙ.

Если вы обнаружите какие-либо ошибки в переводе этой страницы руководства, пожалуйста, сообщите об этом разработчику(ам) по его(их) адресу(ам) электронной почты или по адресу списка рассылки русских переводчиков (<debian-l10n-russian@lists.debian.org>).