GETHOSTNAME(2)

NOM
gethostname, sethostname - Lire/écrire le nom d'hôte

SYNOPSIS
#include <unistd.h>

int gethostname(char *nom, size_t lg);
int sethostname(const char *nom, size_t lg);

Exigences de macros de test de fonctionalité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 lire, ou changer le nom d'hôte de la machine utilisée. L'appel système gethostname() place le nom d'hôte terminé par un octet nul (précédemment fixé avec sethostname()) dans la table de caractères nom contenant au moins lg octets. Si le nom d'hôte suivi d'un octet nul ne tient pas dans cette zone mémoire, il est tronqué sans qu'aucune erreur ne soit signalée. Il n'est pas précisé si le nom d'hôte tronqué est terminé ou non par un octet nul.

VALEUR RENVOYÉE
gethostname() et sethostname() renvoient 0 s'ils réussissent, ou -1 s'ils échouent, auquel cas 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 longueur maximale autorisée, ou encore, pour gethostname() sur Linux/i386, len est plus petit que la taille nécessaire. (Dans ce dernier cas, la glibc 2.1 utilise ENAMETOOLONG).

EPERM
    Pour sethostname(), l'appelant n'a pas la capacité CAP_SYS_ADMIN.

CONFORMITÉ
SVr4, BSD 4.4 (Ces appels système sont apparus en premier 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 l'octet nul final) sont limités à HOST_NAME_MAX octets ».

  Notes glibc
La glibc implémente gethostname() comme une fonction de bibliothèque qui appelle uname(2) et qui copie jusqu'à len octets du champ nodename renvoyé dans name. Une fois effectuée 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 avec errno contenant ENAMETOOLONG. Les versions de la glibc précédant la 2.2 gère différemment le cas où la longueur de nodename est supérieur ou égale à len : rien n'est copié dans name et la fonction renvoie -1 avec errno contenant ENAMETOOLONG.

VOIR AUSSI
getdomainname(2), setdomainname(2), uname(2).

TRADUCTION

Ce document est une traduction réalisée par Christophe Blaess <http://www.blaess.fr/christophe/> le 11 octobre 1996 et révisée le 19 décembre 2007.

L'équipe de traduction a fait le maximum pour réaliser une adaptation française de qualité. La version anglaise la plus à jour de ce document est toujours consultable via la commande : « LANG=C man 2 gethostname ». N'hésitez pas à signaler à l'auteur ou au traducteur, selon le cas, toute erreur dans cette page de manuel.