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():
_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)
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:
EACCES |
Proces wywołujący nie ma prawa zapisu do pliku używanego do przechowywania identyfikatora bieżącej maszyny. | ||
EPERM |
Efektywny identyfikator użytkownika lub grupy procesu wywołującego nie jest taki sam jak odpowiadający mu identyfikator rzeczywisty. |
ATRYBUTY
Informacje o pojęciach używanych w tym rozdziale można znaleźć w podręczniku attributes(7).
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 5.07 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 [AT] dione.pl>, Andrzej Krzysztofowicz <ankry [AT] green.pl> i Robert Luberda <robert [AT] 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 <manpages-pl-list [AT] lists.net>.