Accueil
Rechercher:
sur developpez.com sur les forums
Forums | Tutoriels | F.A.Q's | Participez | Hébergement | Contacts
Accueil Conception Java DotNET Visual Basic  C  C++ Delphi MS-Office SQL & SGBD Oracle  4D  Business Intelligence
Club Emploi Blogs   TV   Dév. Web PHP XML Python Autres 2D-3D-Jeux Sécurité Windows Linux PC Mac
FORUM LINUX FAQ LINUX TUTORIELS LINUX LIVRES LINUX LINUX TV UNIX GTK+ Qt APACHE

UNAME

Section: Manuel du programmeur Linux (2)
Updated: 18 juillet 2003
Index


NOM
SYNOPSIS
DESCRIPTION
VALEUR RENVOYÉE
ERREURS
CONFORMITÉ
NOTES
VOIR AUSSI
TRADUCTION

NOM

uname - Obtenir des informations à propos du noyau.

SYNOPSIS

#include <sys/utsname.h>
int uname(struct utsname *buf);

DESCRIPTION

uname renvoient les informations dans le buffer 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 caractère NUL.

VALEUR RENVOYÉE

uname renvoie 0 s'il réussit ou -1 s'il échoue auquel cas errno contient 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 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.
A 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 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 permet 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, domainname}.

VOIR AUSSI

TRADUCTION

Christophe Blaess, 1996-2003.
Responsable bénévole de la rubrique Linux Professionnel : Olivier Van Hoof - Contacter par EMail :
Vos questions techniques : forum d'entraide Linux Professionnel - Publiez vos articles, tutoriels et cours
et rejoignez-nous dans l'équipe de rédaction du club d'entraide des développeurs francophones
Nous contacter - Copyright © 2000-2008 www.developpez.com - Legal informations.