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 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 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
Ces appels renvoient 0 s'ils réussissent, ou -1 s'ils échouent, auquel cas errno est renseignée en conséquence.

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 la copie effectuée, 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 renseignant errno avec ENAMETOOLONG. Les versions de la glibc antérieures à la 2.2 gèrent de façon différente le cas où la longueur de nodename est supérieure ou égale à len : rien n'est copié dans name et la fonction renvoie -1 en renseignant errno avec 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 23 juin 2008.

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.