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