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);
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
- EFAULT
- naam is een ongeldig adres.
- EINVAL
- len is negatief of, voor sethostname(), len is groter dat de maximum toegestane maat.
- ENAMETOOLONG
- (glibc gethostname()) len is kleiner dan de benodigde grootte. (Voor glibc 2.1, gebruikte glibc in dit geval EINVAL.)
- EPERM
- 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
- gethostname()
- POSIX.1-2008.
- sethostname()
- 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.
2 mei 2024 | Linux man-pages 6.8 |