Manpages

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

hostid(1), gethostbyname(3)

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