uname   Début   Suivant   Sommaire   Préc.page.lue   Accueil

Section: Manuel du programmeur Linux (2)
Updated: 5 juillet 2007
Sommaire  




NOM   Début   Précédent   Suivant   Sommaire   Préc.page.lue   Accueil

uname - Obtenir des informations à propos du noyau  




SYNOPSIS   Début   Précédent   Suivant   Sommaire   Préc.page.lue   Accueil

#include <sys/utsname.h>

int uname(struct utsname *buf);  




DESCRIPTION   Début   Précédent   Suivant   Sommaire   Préc.page.lue   Accueil

uname() renvoie les informations dans le tampon buf. La structure utsname est définie dans <sys/utsname.h> 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 octet nul (« \0 »).  



VALEUR RENVOYÉE   Début   Précédent   Suivant   Sommaire   Préc.page.lue   Accueil

Cet appel système renvoie 0 s'il réussit ou -1 s'il échoue, auquel cas errno contient le code d'erreur.  




ERREURS   Début   Précédent   Suivant   Sommaire   Préc.page.lue   Accueil

EFAULT

buf pointe en dehors de l'espace d'adressage accessible

 



CONFORMITÉ   Début   Précédent   Suivant   Sommaire   Préc.page.lue   Accueil

SVr4, POSIX.1-2001. 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   Début   Précédent   Suivant   Sommaire   Préc.page.lue   Accueil

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 structure 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 connecté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.

À cette fin, Linux utilise les appels système sethostname(2) et setdomainname(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 autorisent un nom d'hôte de 256 octets et un nom de nœud 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 utilisent 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 permet de stocker un nom d'hôte Internet entier.

Une partie des informations utsname est aussi accessible par sysctl(2) et par /proc/sys/kernel/{ostype, hostname, osrelease, version, domainname}.  




Interface noyau sous-jacente   Début   Précédent   Suivant   Sommaire   Préc.page.lue   Accueil

Au fil du temps, l'augmentation de la taille de la structure utsuname a conduit à trois versions successives de uname() : sys_olduname() (entrée __NR_oldolduname), sys_uname() (entrée __NR_olduname), et sys_newuname() (entrée __NR_uname). La première utilisait une longueur de 9 pour tous les champs, la deuxième utilisait 65 et la troisième utilise également 65 mais ajoute le champ domainname. La fonction enveloppe uname() de la glibc cache ces détails aux applications, invoquant la version la plus récente de l'appel système fourni par le noyau.  




VOIR AUSSI   Début   Précédent   Suivant   Sommaire   Préc.page.lue   Accueil

uname(1), getdomainname(2), gethostname(2)  




TRADUCTION   Début   Précédent   Suivant   Sommaire   Préc.page.lue   Accueil

Ce document est une traduction réalisée par Christophe Blaess <http://www.blaess.fr/christophe/> le 15 octobre 1996 et révisée le 24 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 uname ». N'hésitez pas à signaler à l'auteur ou au traducteur, selon le cas, toute erreur dans cette page de manuel.


 



Sommaire   Début   Suivant   Sommaire   Préc.page.lue   Accueil

NOM

SYNOPSIS

DESCRIPTION

VALEUR RENVOYÉE

ERREURS

CONFORMITÉ

NOTES

Interface noyau sous-jacente

VOIR AUSSI

TRADUCTION


Table des mots clés   Début   Suivant   Sommaire   Préc.page.lue   Accueil
EFAULTERREURS



Ce document a été créé par man2html suivi de man2html.pl, le 27/10/2008 08:41:41, en utilisant les pages de 'man'.
 

Valid HTML 4.01 Transitional