oracular (2) gethostname.2.gz

Provided by: manpages-pl-dev_4.23.1-1_all bug

NAZWA

       gethostname, sethostname - pobiera/ustawia nazwę stacji

BIBLIOTEKA

       Standardowa biblioteka C (libc, -lc)

SKŁADNIA

       #include <unistd.h>

       int gethostname(char *name, size_t len);
       int sethostname(const char *name, size_t len);

   Wymagane ustawienia makr biblioteki glibc (patrz feature_test_macros(7)):

       gethostname():
           _XOPEN_SOURCE >= 500 || _POSIX_C_SOURCE >= 200112L
               || /* glibc 2.19 i wcześniejsze */ _BSD_SOURCE

       sethostname():
           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

       Wywołania   systemowe   służą  do  uzyskania  dostępu  lub  zmiany  systemowej  nazwy  komputera.  Mówiąc
       precyzyjniej, działają na nazwie komputera, związanej z przestrzenią nazw UTS procesu wywołującego.

       sethostname() ustawia nazwę komputera na wartość określoną w tablicy znakowej name. Argument len argument
       określa liczbę bajtów w name (dlatego name nie wymaga końcowego bajtu null).

       gethostname()  zwraca  nazwę  komputera, zakończoną znakiem null, w tablicy znakowej name, o długości len
       bajtów. Jeśli zakończona znakiem null nazwa komputera jest zbyt długa, aby się zmieścić,  to  nazwa  jest
       obcinana  i  nie  jest  zwracany  żaden  błąd  (ale  zob. UWAGI poniżej). POSIX.1 określa, że jeśli takie
       obcięcie występuje, to nie jest określone, czy zwracany bufor zawiera końcowy bajt null.

WARTOŚĆ ZWRACANA

       Po pomyślnym zakończeniu zwracane jest zero. Po błędzie zwracane jest -1  i  ustawiane  errno,  wskazując
       błąd.

BŁĘDY

       EFAULT name jest nieprawidłowym adresem.

       EINVAL len jest ujemne lub, przy sethostname(), len jest większe niż maksymalny dopuszczalny rozmiar.

       ENAMETOOLONG
              (glibc  gethostname())   len  jest  mniejsze niż rzeczywisty rozmiar. Przed glibc 2.1, glibc w tym
              przypadku używało EINVAL.

       EPERM  W przypadku sethostname(), wywołujący nie posiadał przywileju (ang.  capability)  CAP_SYS_ADMIN  w
              przestrzeni nazw użytkownika związanej z jego przestrzenią nazw UTS (zob. namespaces(7)).

WERSJE

       SUSv2 gwarantuje, że „nazwy stacji są ograniczone do 255 bajtów”. POSIX 1003.1-2001 gwarantuje, że „nazwy
       stacji (bez kończącego NUL) są ograniczone  do  HOST_NAME_MAX  bajtów”.  W  Linuksie  HOST_NAME_MAX  jest
       zdefiniowane  z  wartością  64,  co  stanowiło limit od Linuksa 1.0 (wcześniejsze jądra narzucały limit 8
       bajtów).

   Różnice biblioteki C/jądra
       Biblioteka GNU C nie używa wywołania systemowego gethostname(); w zamian korzysta  z  gethostname()  jako
       funkcji  bibliotecznej  wywołującej uname(2) i kopiuje do len bajtów ze zwracanego pola nodename do name.
       Po przeprowadzeniu kopiowania, funkcja sprawdza, czy długość nodename była większa lub równa len i  jeśli
       tak  było,  funkcja zwraca -1 z errno ustawionym na ENAMETOOLONG; w takim przypadku końcowy bajt null nie
       jest umieszczany w zwracanym name.

STANDARDY

       gethostname()
              POSIX.1-2008.

       sethostname()
              Brak.

HISTORIA

       SVr4, 4.4BSD (interfejsy te pierwotnie pojawiły się w  4.2BSD).  POSIX.1-2001  i  POSIX.1-2008  definiuje
       gethostname() ale nie sethostname().

       Wersje  glibc przed glibc 2.2 obsługują przypadek, w którym długość nodename była większa lub równa len w
       odmienny sposób: nic nie jest kopiowane do name, a funkcja zwraca -1 z errno ustawionym na ENAMETOOLONG.

ZOBACZ TAKŻE

       hostname(1), getdomainname(2), setdomainname(2), uname(2), uts_namespaces(7)

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 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  ⟨https://www.gnu.org/licenses/gpl-3.0.html⟩  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⟩.