table of contents
GETHOSTNAME(2) | Manuel du programmeur Linux | GETHOSTNAME(2) |
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)
DESCRIPTION¶
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¶
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 <URL:http://www.kernel.org/doc/man-pages/>.
TRADUCTION¶
Depuis 2010, cette traduction est maintenue à l'aide de l'outil po4a <URL:http://po4a.alioth.debian.org/> par l'équipe de traduction francophone au sein du projet perkamon <URL:http://alioth.debian.org/projects/perkamon/>.
Christophe Blaess <URL:http://www.blaess.fr/christophe/> (1996-2003), Alain Portal <URL:http://manpagesfr.free.fr/> (2003-2006). Julien Cristau et l'équipe francophone de traduction de Debian (2006-2009).
Veuillez signaler toute erreur de traduction en écrivant à <perkamon-l10n-fr@lists.alioth.debian.org>.
Vous pouvez toujours avoir accès à la version anglaise de ce document en utilisant la commande « LC_ALL=C man <section> <page_de_man> ».
27 novembre 2008 | Linux |