gethostname

Autres langues

Langue: fr

Version: 17 juin 2004 (fedora - 16/08/07)

Section: 2 (Appels système)

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);

DESCRIPTION

Ces appels systèmes 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 (Cet appel système est apparu 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 bibliothèque C GNU 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 14 août 2006.

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.