GETHOSTNAME(2) Linux Programmeurs Handleiding GETHOSTNAME(2)

gethostname, sethostname - krijg/zet machinenaam

#include <unistd.h>
int gethostname(char *name, size_t len);
int sethostname(const char *name, size_t len);
Test Macro´s in glibc (zie feature_test_macros(7)):

gethostname():


_XOPEN_SOURCE >= 500 || _POSIX_C_SOURCE >= 200112L
|| /* Glibc 2.19 and earlier */ _BSD_SOURCE

sethostname():


Since glibc 2.21:
_DEFAULT_SOURCE
In glibc 2.19 and 2.20:
_DEFAULT_SOURCE || (_XOPEN_SOURCE && _XOPEN_SOURCE < 500)
Up to and including glibc 2.19:
_BSD_SOURCE || (_XOPEN_SOURCE && _XOPEN_SOURCE < 500)

Deze systeem aanroepen worden gebruikt om de machinenaam van het systeem op te vragen of te veranderen. Preciezer gezegd, ze werken op de machinenaam die geassocieerd is met de UTS naamruimte van het aanroepende proces.

sethostname() zet de machinenaam op de waarde gegeven door de tekenreeks naam. Het len argument specificeert het aantal bytes in naam. (Daarom vereist naam geen afsluitend NULL byte.)

gethostname() retourneert een met NULL afgesloten machinenaam in de tekenreeks naam, die een lengte van len bytes heeft. Als de met NULL afgesloten machinenaam te lang is om te passen, dan wordt de naam afgekapt, en geen fout teruggegeven (let op: lees OPMERKINGEN hieronder). POSIX.1 zegt dat als dit afkappen optreedt, dat het niet bepaald is of de teruggegeven buffer een afsluitende NULL bevat of niet.

Bij succes wordt nul teruggegeven. Bij falen wordt -1 teruggegeven en wordt errno overeenkomstig gezet.

naam is een ongeldig adres.
len is negatief of, voor sethostname(), len is groter dat de maximum toegestane maat.
(glibc gethostname()) len is kleiner dan de benodigde grootte. (Voor version 2.1, gebruikte glibc in dit geval EINVAL.)
Met sethostname() had de aanroeper niet de benodigde CAP_SYS_ADMIN capaciteit in de gebruiker naamruimte geassocieerd met zijn UTS naamruimte (zie namespaces(7)).

SVr4, 4.4BSD (deze functie verscheen voor het eerst in 4.2BSD).POSIX.1-2001 en POSIX.1-2008 bepalen gethostname(), maar niet sethostname().

SUSv2 garandeert dat "Machinenamen beperkt zijn tot 255 bytes". POSIX.1 garandeert dat "Machinenamen (exclusief het afsluitende NULL byte) beperkt zijn tot HOST_NAME_MAX bytes". Op Linux, is HOST_NAME_MAX is gedefinieerd met de waarde 64, hetgeen de limiet is geweest sinds Linux 1.0 (eerdere kernels kenden een limiet van 8 bytes).

De GNU C bibliotheek gebruikt de gethostname() systeem aanroep niet; in plaats daarvan implementeert hij gethostname() als een bibliotheek functie die uname(2) aanroept en vervolgens maximaal len bytes van het teruggegeven nodenaam veld naar naam kopieert. Na het uitvoeren van de kopie controleert de functie of de lengte van nodenaam groter of gelijk was aan len en als dat het geval was dan geeft de functie -1 terug en wordt errno gezet op ENAMETOOLONG; in dit geval wordt het afsluitend NULL byte niet toegevoegd aan de teruggegeven naam.

Versies van glibc voor 2.2 behandelden het geval waar de lengte van de nodenaam groter of gelijk was aan len anders: niets werd gekopieerd naar naam en de functie retourneert -1 met errno gezet op ENAMETOOLONG.

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

Deze pagina is onderdeel van release 5.13 van het Linux man-pages-project. Een beschrijving van het project, informatie over het melden van bugs en de nieuwste versie van deze pagina zijn op https://www.kernel.org/doc/man-pages/ te vinden.

De Nederlandse vertaling van deze handleiding is geschreven door Jos Boersema <joshb@xs4all.nl>, Mario Blättermann <mario.blaettermann@gmail.com> en Luc Castermans <luc.castermans@gmail.com>

Deze vertaling is vrije documentatie; lees de GNU General Public License Version 3 of later over de Copyright-voorwaarden. Er is geen AANSPRAKELIJKHEID.

Indien U fouten in de vertaling van deze handleiding zou vinden, stuur een e-mail naar debian-l10n-dutch@lists.debian.org.

22 maart 2021 Linux