Loading

NOM

       uname - Obtenir des informations à propos du noyau.

SYNOPSIS

       #include <sys/utsname.h>

       int uname(struct utsname *buf);

       uname()  renvoie  les  informations  dans  le  tampon buf. La structure
       utsname est définie dans <sys/utsname.h> comme suit :

           struct utsname {
               char sysname[];    /* Nom du système d’exploitation
                                     (par exemple, "Linux") */
               char nodename[];   /* Nom dans "des réseaux définis
                                     par l’implémentation" */
               char release[];    /* release de l’OS (e.g., "2.6.28") */
               char version[];    /* version de l’OS */
               char machine[];    /* Identifiant du matériel */
           #ifdef _GNU_SOURCE
               char domainname[]; /* nom de domaine NIS ou YP */
           #endif
           };

       La longueur des chaînes  de  la  struct  utsname  n’est  pas  spécifiée
       (consultez  la section NOTES), les champs se terminent par un caractère
       nul ('\0').

VALEUR RENVOYÉE

       En cas de réussite, zéro est renvoyé, sinon -1  est  renvoyé  et  errno
       contient le code d’erreur.

ERREURS

       EFAULT buf pointe en dehors de l’espace d’adressage accessible

CONFORMITÉ

       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

       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 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 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
       /proc/sys/kernel/{ostype, hostname, osrelease, version, domainname}.

   Interface noyau sous-jacente
       Avec  le  temps,  l’augmentation de la taille de la structure utsname a
       conduit à 3 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 seconde utilisait 65 ; et la troisième une longueur de
       65 également mais avec un champ domainname supplémentaire. La  fonction
       uname()  de la glibc cache ces détails aux applications, en appelant la
       version la plus récente de ces appels système fournie par le noyau.

VOIR AUSSI

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

COLOPHON

       Cette page fait partie de  la  publication  3.23  du  projet  man-pages
       Linux.  Une description du projet et des instructions pour signaler des
       anomalies      peuvent      être       trouvées       à       l’adresse
       http://www.kernel.org/doc/man-pages/.

TRADUCTION

       Cette  page  de  manuel  a  été  traduite et mise à jour par Christophe
       Blaess <http://www.blaess.fr/christophe/> entre 1996 et 2003, puis  par
       Alain  Portal  <aportal AT univ-montp2 DOT fr> jusqu’en 2006, et mise à
       disposition sur http://manpagesfr.free.fr/.

       Les mises à jour et corrections de la version présente dans Debian sont
       directement gérées par Julien Cristau <jcristau@debian.org> et l’équipe
       francophone de traduction de Debian.

       Veuillez  signaler  toute  erreur   de   traduction   en   écrivant   à
       <debian-l10n-french@lists.debian.org> ou par un rapport de bogue sur le
       paquet manpages-fr.

       Vous pouvez toujours avoir accès à la version anglaise de  ce  document
       en utilisant la commande « man -L C <section> <page_de_man> ».