NOM
gethostname, sethostname - Lire/écrire le nom d’hôte
SYNOPSIS
#include <unistd.h>
int gethostname(char *name, size_t len);
int sethostname(const char *name, size_t len);
Exigences de macros de test de fonctionnalités pour la glibc (voir
feature_test_macros(7)) :
gethostname() : _BSD_SOURCE || _XOPEN_SOURCE >= 500
sethostname() : _BSD_SOURCE || (_XOPEN_SOURCE && _XOPEN_SOURCE <500)
Ces appels système sont utilisés pour obtenir ou changer le nom d’hôte
du processeur en cours.
sethostname() définit le nom d’hôte à la valeur fournie dans le tableau
d’octets name. Le paramètre len indique le nombre d’octets dans nom
(ainsi, name n’a pas à contenir d’octet nul de fin).
gethostname() renvoie le nom d’hôte, avec un octet nul de fin, dans le
tableau d’octets name, qui a une longueur de len octets. Si le nom
d’hôte avec son octet nul de fin est trop long pour tenir, alors le nom
est tronqué, et aucune erreur n’est renvoyée (mais consultez la section
NOTES ci-dessous). POSIX.1-2001 indique que dans le cas ou le nom est
tronqué, il n’est pas spécifié si le tableau renvoyé inclut ou pas un
octet nul de fin.
VALEUR RENVOYÉE
En cas de réussite, zéro est renvoyé, sinon -1 est renvoyé et errno
contient le code d’erreur.
ERREURS
EFAULT name pointe en dehors de l’espace d’adressage accessible.
EINVAL len est négatif ou, pour sethostname(), len est plus grand que
la taille maximale autorisée.
ENAMETOOLONG
(gethostname() de la glibc) len est plus petit que la véritable
taille (avant la glibc 2.1, la glibc utilisait EINVAL dans ce
cas).
EPERM Pour sethostname(), l’appelant n’a pas la capacité
CAP_SYS_ADMIN.
CONFORMITÉ
SVr4, BSD 4.4 (ces interfaces sont apparues dans BSD 4.2). POSIX.1-2001
définit gethostname() mais pas sethostname().
NOTES
SUSv2 garantit que « les noms d’hôtes sont limités à 255 octets».
POSIX.1-2001 garantit que « les noms d’hôtes (non compris le caractère
NUL final) sont limités à HOST_NAME_MAX octets ». Sous Linux,
HOST_NAME_MAX vaut la valeur 64, qui a été la limite depuis Linux 1.0
(les noyaux plus anciens imposaient une limite de 8 octets).
Notes sur la glibc
La bibliothèque C GNU n’utilise pas l’appel système gethostname() ; à
la place, gethostname() est implémentée comme une fonction de
bibliothèque qui appelle uname(2) et copie jusqu’à len octets depuis le
champ nodename renvoyé dans name. Après la copie, la fonction vérifie
si la longueur de nodename était supérieure ou égale à len, et si c’est
le cas, la fonction renvoie -1 en positionnant errno à ENAMETOOLONG.
Les versions de glibc antérieures à 2.2 gèrent le cas où la longueur de
nodename est supérieur ou égal à len de façon différente : rien n’est
copié dans name, et la fonction renvoie -1 en positionnant errno à
ENAMETOOLONG ; dans ce cas, aucun caractère nul de fin n’est inclu dans
la valeur name renvoyée.
Les versions de la glibc antérieures à la version 2.2 prennent en
charge différemment le cas où la longueur de nodename est supérieure ou
égal à len : rien n’est copié dans name et la fonction renvoie -1 en
positionnant errno à ENAMETOOLONG.
VOIR AUSSI
getdomainname(2), setdomainname(2), uname(2).
COLOPHON
Cette page fait partie de la publication 3.23 du projet man-pages
Linux. Une description du projet et des instructions pour signaler des
anomalies peuvent être trouvées à l’adresse
http://www.kernel.org/doc/man-pages/.
TRADUCTION
Cette page de manuel a été traduite et mise à jour par Christophe
Blaess <http://www.blaess.fr/christophe/> entre 1996 et 2003, puis par
Alain Portal <aportal AT univ-montp2 DOT fr> jusqu’en 2006, et mise à
disposition sur http://manpagesfr.free.fr/.
Les mises à jour et corrections de la version présente dans Debian sont
directement gérées par Julien Cristau <jcristau@debian.org> et l’équipe
francophone de traduction de Debian.
Veuillez signaler toute erreur de traduction en écrivant à
<debian-l10n-french@lists.debian.org> ou par un rapport de bogue sur le
paquet manpages-fr.
Vous pouvez toujours avoir accès à la version anglaise de ce document
en utilisant la commande « man -L C <section> <page_de_man> ».