Scroll to navigation

gethostname(2) System Calls Manual gethostname(2)

NUME

gethostname, sethostname - obține/stabilește numele gazdei

BIBLIOTECA

Biblioteca C standard (libc, -lc)

REZUMAT

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

Cerințe pentru macrocomenzi de testare a caracteristicilor pentru glibc (consultați feature_test_macros(7)):

gethostname():


_XOPEN_SOURCE >= 500 || _POSIX_C_SOURCE >= 200112L
|| /* glibc 2.19 și versiunile anterioare */ _BSD_SOURCE

sethostname():


Începând cu glibc 2.21:
_DEFAULT_SOURCE
În glibc 2.19 și 2.20:
_DEFAULT_SOURCE || (_XOPEN_SOURCE && _XOPEN_SOURCE < 500)
Până la și inclusiv glibc 2.19:
_BSD_SOURCE || (_XOPEN_SOURCE && _XOPEN_SOURCE < 500)

DESCRIERE

Aceste apeluri de sistem sunt utilizate pentru a accesa sau pentru a modifica numele de gazdă al sistemului. Mai exact, ele operează asupra numelui de gazdă asociat cu spațiul de nume UTS al procesului apelant.

sethostname() stabilește numele de gazdă la valoarea dată în matricea de caractere name. Argumentul len specifică numărul de octeți din name. (Prin urmare, name nu necesită un octet de terminare nul).

gethostname() returnează numele de gazdă cu un octet de terminare nul în matricea de caractere name, care are o lungime de len octeți. În cazul în care numele de gazdă cu un octet de terminare nul este prea mare pentru a încăpea, numele este trunchiat și nu se returnează nicio eroare (a se vedea însă rubrica NOTE de mai jos). POSIX.1 precizează că, dacă are loc o astfel de trunchiere, nu se specifică dacă memoria tampon returnată include sau nu un octet de terminare nul.

VALOAREA RETURNATĂ

În caz de succes, se returnează zero. În caz de eroare, se returnează -1, iar errno este configurată pentru a indica eroarea.

ERORI-IEȘIRE

name este o adresă nevalidă.
argumentul len este negativ sau, pentru sethostname(), len este mai mare decât dimensiunea maximă permisă.
(glibc gethostname()) argumentul len este mai mic decât dimensiunea reală; (înainte de glibc 2.1, glibc utiliza EINVAL pentru acest caz).
Pentru sethostname(), apelantul nu avea capacitatea CAP_SYS_ADMIN în spațiul de nume de utilizator asociat cu spațiul său de nume UTS (a se vedea namespaces(7)).

VERSIUNI

SUSv2 garantează că „Numele de gazdă sunt limitate la 255 de octeți”. POSIX.1 garantează că „Numele gazdelor (fără a include octetul nul de terminare) sunt limitate la HOST_NAME_MAX octeți”. În Linux, HOST_NAME_MAX este definit cu valoarea 64, care a fost limita de la Linux 1.0 (nucleele anterioare au impus o limită de 8 octeți).

Diferențe între biblioteca C și nucleu

Biblioteca GNU C nu utilizează apelul de sistem gethostname(); în schimb, implementează gethostname() ca o funcție de bibliotecă care apelează uname(2) și copiază până la len octeți din câmpul nodename returnat în name. După ce a efectuat copia, funcția verifică dacă lungimea câmpului nodename a fost mai mare sau egală cu len, iar dacă este așa, funcția returnează -1 cu errno stabilită la ENAMETOOLONG; în acest caz, un octet de terminare nul nu este inclus în câmpul nodename returnat.

STANDARDE

POSIX.1-2008.
Niciunul.

ISTORIC

SVr4, 4.4BSD (aceste interfețe au apărut pentru prima dată în 4.2BSD). POSIX.1-2001 și POSIX.1-2008 specifică gethostname(), dar nu și sethostname().

Versiunile de glibc anterioare lui glibc 2.2 tratează diferit cazul în care lungimea lui nodename a fost mai mare sau egală cu len: nu se copiază nimic în name și funcția returnează -1 cu errno stabilită la ENAMETOOLONG.

CONSULTAȚI ȘI

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

TRADUCERE

Traducerea în limba română a acestui manual a fost făcută de Remus-Gabriel Chelu <remusgabriel.chelu@disroot.org>

Această traducere este documentație gratuită; citiți Licența publică generală GNU Versiunea 3 sau o versiune ulterioară cu privire la condiții privind drepturile de autor. NU se asumă NICIO RESPONSABILITATE.

Dacă găsiți erori în traducerea acestui manual, vă rugăm să trimiteți un e-mail la translation-team-ro@lists.sourceforge.net.

30 martie 2023 Pagini de manual de Linux 6.05.01