Scroll to navigation

gethostname(2) System Calls Manual gethostname(2)

NAAM

gethostname, sethostname - krijg/zet machinenaam

BIBLIOTHEEK

Standard C bibliotheek (libc, -lc)

SAMENVATTING

#include <unistd.h>
int gethostname(char *naam, size_t len);
int sethostname(const char *naam, size_t len);

Feature Test Macro´s eisen in glibc (zie feature_test_macros(7)):

gethostname():


_XOPEN_SOURCE >= 500 || _POSIX_C_SOURCE >= 200112L
|| /* glibc 2.19 en eerder */ _BSD_SOURCE

sethostname():


Vanaf glibc 2.21:
_DEFAULT_SOURCE
In glibc 2.19 en 2.20:
_DEFAULT_SOURCE || (_XOPEN_SOURCE && _XOPEN_SOURCE < 500)
Tot en met glibc 2.19:
_BSD_SOURCE || (_XOPEN_SOURCE && _XOPEN_SOURCE < 500)

BESCHRIJVING

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.

EIND WAARDE

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

FOUTEN

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

VERSIES

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

C library/kernel verschillen

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.

VOLDOET AAN

POSIX.1-2008.
Geen.

GESCHIEDENIS

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

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.

ZIE OOK

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

VERTALING

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.

30 maart 2023 Linux man-pagina's 6.05.01