table of contents
GETHOSTID(3) | Podręcznik programisty Linuksa | GETHOSTID(3) |
NAZWA¶
gethostid, sethostid - pobranie lub ustawienie unikatowego identyfikatora obecnej maszyny
SKŁADNIA¶
#include <unistd.h>
long gethostid(void);
int sethostid(long hostid);
Wymagane ustawienia makr biblioteki glibc (patrz
feature_test_macros(7)):
gethostid():
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)
OPIS¶
gethostid() oraz sethostid odpowiednio pobiera lub ustawia unikatowy 32-bitowy identyfikator obecnej maszyny. 32-bitowy identyfikator powinien być niepowtarzalny wśród wszystkich istniejących systemów uniksowych. Normalnie jest to podobne do adresu internetowego lokalnej maszyny, zwracanego przez gethostbyname(3) i dlatego zwykle nie musi być ustawiane.
Wywołanie sethostid() jest zastrzeżone dla superużytkownika.
WARTOŚĆ ZWRACANA¶
gethostid() zwraca 32-bitowy identyfikator obecnej maszyny, 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.
BŁĘDY¶
sethostid() może zawieść z powodu następujących błędów:
ATRYBUTY¶
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-Safe hostid env locale |
sethostid() | Bezpieczeństwo wątkowe | MT-Unsafe const:hostid |
ZGODNE Z¶
4.2BSD. Funkcje te porzucono w 4.4BSD. SVr4 zawiera gethostid(), lecz brak tam sethostid().
POSIX.1-2001 i POSIX.1-2008 zawiera gethostid(), ale nie sethostid().
UWAGI¶
W implementacji biblioteki glibc hostid jest przechowywane w pliku /etc/hostid. (W wersjach glibc wcześniejszych niż 2.2 był używany plik /var/adm/hostid).
W implementacji glibc, jeśli gethostid() nie może otworzyć pliku zawierającego ID maszyny, to pobiera jej 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).
BŁĘDY¶
Nie da się zapewnić, że ten identyfikator jest globalnie niepowtarzalny.
ZOBACZ TAKŻE¶
O STRONIE¶
Angielska wersja tej strony pochodzi z wydania 4.16 projektu Linux man-pages. Opis projektu, informacje dotyczące zgłaszania błędów oraz najnowszą wersję oryginału można znaleźć pod adresem https://www.kernel.org/doc/man-pages/.
TŁUMACZENIE¶
Autorami polskiego tłumaczenia niniejszej strony podręcznika są: Przemek Borys <pborys@dione.ids.pl>, Andrzej Krzysztofowicz <ankry@green.mf.pg.gda.pl> i Robert Luberda <robert@debian.org>
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.
15 września 2017 r. | Linux |