UNAME(2) Manuel du programmeur Linux UNAME(2)
NOM
uname - Obtenir des informations à propos du noyau.
SYNOPSIS
#include
int uname(struct utsname *buf);
DESCRIPTION
uname renvoient les informations dans le buffer buf. la structure
utsname est définie dans comme suit :
struct utsname {
char sysname[];
char nodename[];
char release[];
char version[];
char machine[];
#ifdef _GNU_SOURCE
char domainname[];
#endif
};
La longueur des chaînes de la struct utsname n'est pas spécifiée, les
champs se terminent par un caractère NUL.
VALEUR RENVOYÉE
uname renvoie 0 s'il réussit ou -1 s'il échoue auquel cas errno con‐
tient le code d'erreur.
ERREURS
EFAULT buf pointe en dehors de l'espace d'adressage accessible
CONFORMITÉ
SVr4, SVID, POSIX, X/OPEN. Il n'y a pas d'appel uname dans BSD 4.3.
Le champ domainname (nom de domaine NIS ou YP) est une extension Gnu.
NOTES
Ceci est un appel système, et le système d'exploitation est supposé
connaître son nom, et ses numéros de version et de mise à jour. Il
connaît également le matériel sur lequel il tourne, ainsi les quatre
premiers champs de la structures sont significatifs. En revanche, le
champ nodename n'est pas significatif : il donne le nom de la machine
dans un réseau non précisé, mais généralement les machines sont con‐
nectées à plusieurs réseaux et ont plusieurs noms. De plus, le noyau
n'a pas de moyen de connaître ces informations, et on doit les lui
fournir. Ceci est vrai aussi pour le champ supplémentaire domainname.
A cette fin, Linux utilise les appels système sethostname(2) et setdo‐
mainname(2). Notez qu'aucun standard ne dit que le nom d'hôte fixé par
sethostname(2) représente la même chaîne que le champ nodename de la
structure renvoyée par uname, (de fait, certains systèmes autorise un
nom d'hôte de 256 octets et un nom de noeud sur 8 octets), mais c'est
le cas sous Linux. La même chose est vraie pour setdomainname(2) et le
champ domainname.
La longueur des champs de la structure varie. Certains systèmes
d'exploitation ou bibliothèques utilise des valeurs en dur de 9, 33,
65, ou 257. D'autres systèmes utilisent SYS_NMLN, _SYS_NMLN, UTSLEN ou
_UTSNAME_LENGTH. Clairement, il faut éviter d'utiliser ces constantes,
employez plutôt sizeof(...). On choisit souvent la valeur 257 qui per‐
met de stocker un nom d'hôte Internet entier.
Il y a eu trois appels système uname sous Linux. Le premier utilisait
une longueur de 9, le second de 65 et le troisième utilise également 65
mais ajoute le champ domainname.
Une partie des informations utsname est aussi accessible par sysctl et
par /proc/sys/kernel/{ostype, hostname, osrelease, version, domain‐
name}.
VOIR AUSSI
uname(1), getdomainname(2), gethostname(2)
TRADUCTION
Christophe Blaess, 1996-2003.
LDP 18 juillet 2003 UNAME(2)