gethostid(3) Library Functions Manual gethostid(3)

gethostid, sethostid - pobiera lub ustawia unikatowy identyfikator bieżącego komputera

Standardowa biblioteka C (libc, -lc)

#include <unistd.h>
long gethostid(void);
int sethostid(long hostid);
Wymagane ustawienia makr biblioteki glibc (patrz feature_test_macros(7)):

gethostid():

    Od glibc 2.20:
        _DEFAULT_SOURCE || _XOPEN_SOURCE >= 500
    Do glibc 2.19 włącznie:
        _BSD_SOURCE || _XOPEN_SOURCE >= 500

sethostid():

    Od glibc 2.21:
        _DEFAULT_SOURCE
    W glibc 2.19 i 2.20:
        _DEFAULT_SOURCE || (_XOPEN_SOURCE && _XOPEN_SOURCE < 500)
    Do glibc 2.19 włącznie:
        _BSD_SOURCE || (_XOPEN_SOURCE && _XOPEN_SOURCE < 500)

gethostid() oraz sethostid odpowiednio pobiera lub ustawia unikatowy 32-bitowy identyfikator bieżącego komputera. 32-bitowy identyfikator miał być niepowtarzalny wśród wszystkich istniejących systemów uniksowych. Normalnie jest to podobne do adresu internetowego lokalnego komputera, zwracanego przez gethostbyname(3) i dlatego zwykle nie musi być ustawiane.

Wywołanie sethostid() jest zastrzeżone dla superużytkownika.

gethostid() zwraca 32-bitowy identyfikator bieżącego komputera, jaki został ustawiony przez sethostid().

W przypadku powodzenia sethostid() zwraca zero. W razie wystąpienia błędu zwracane jest -1 i ustawiana jest odpowiednia wartość zmiennej errno.

sethostid() może zawieść z powodu następujących błędów:

Proces wywołujący nie ma prawa zapisu do pliku używanego do przechowywania identyfikatora bieżącego komputera.
Efektywny identyfikator użytkownika lub grupy procesu wywołującego nie jest taki sam jak odpowiadający mu identyfikator rzeczywisty.

Informacje o pojęciach używanych w tym rozdziale można znaleźć w podręczniku attributes(7).

Interfejs Atrybut Wartość
gethostid() Bezpieczeństwo wątkowe MT-bezpieczne hostid env locale
sethostid() Bezpieczeństwo wątkowe MT-niebezpieczne const:hostid

W implementacji biblioteki glibc hostid jest przechowywane w pliku /etc/hostid (przed glibc 2.2 był używany plik /var/adm/hostid).

W implementacji glibc, jeśli gethostid() nie może otworzyć pliku zawierającego ID komputera, to pobiera jego nazwę, używając gethostname(2), następnie przekazuje ją do gethostbyname_r(3), aby dostać adres IPv4 komputera, by w końcu zwrócić wartość utworzoną przez pomieszanie bitów adresu IPv4 (taka wartość może nie być unikatowa).

POSIX.1-2008.
Brak.

4.2BSD; porzucono w 4.4BSD. SVr4 i POSIX.1-2001 zawiera gethostid(), lecz brak tam sethostid().

Nie da się zapewnić, że ten identyfikator jest globalnie niepowtarzalny.

hostid(1), gethostbyname(3)

Autorami polskiego tłumaczenia niniejszej strony podręcznika są: Przemek Borys <pborys@dione.ids.pl>, Andrzej Krzysztofowicz <ankry@green.mf.pg.gda.pl>, Robert Luberda <robert@debian.org> i Michał Kułach <michal.kulach@gmail.com>

Niniejsze tłumaczenie jest wolną dokumentacją. Bliższe informacje o warunkach licencji można uzyskać zapoznając się z GNU General Public License w wersji 3 lub nowszej. Nie przyjmuje się ŻADNEJ ODPOWIEDZIALNOŚCI.

Błędy w tłumaczeniu strony podręcznika prosimy zgłaszać na adres listy dyskusyjnej manpages-pl-list@lists.sourceforge.net.

2 maja 2024 r. Linux man-pages 6.8