UNAME |
Nom universel |
---|---|
sys/utsname.h |
Syntaxe
int uname(struct utsname *buf); |
Paramètres
Nom | Description | ||
---|---|---|---|
buf | Ce paramètre permet d'indiquer la structure de données de nom du noyau : | ||
Nom | Type de données | Description | |
sysname | char [] | Ce champ permet d'indiquer le nom système | |
nodename | char [] | Ce champ permet d'indiquer le nom du noeud | |
release | char [] | Ce champ permet d'indiquer la réalisation | |
version | char [] | Ce champ permet d'indiquer la version | |
machine | char [] | Ce champ permet d'indiquer la machine | |
domainname | char [] | Ce champ permet d'indiquer le nom de domaine |
Description
Cette fonction permet de demander le nom du système d'exploitation courant.
Remarques
- Il s'agit d'un appel système et le système d'exploitation connaît probablement son nom, sa version et sa réalisation. Il sait également sur quel matériel il fonctionne. Ainsi, quatre des champs de la structure sont significatifs. D'un autre côté, le champ nodename n'a pas de sens : il donne le nom de la machine présente dans un réseau indéfini, mais typiquement les machines sont dans plus d'un réseau et ont plusieurs noms. De plus, le noyau n'a aucun moyen de savoir de telles choses, il faut donc lui dire quoi répondre ici. Il en va de même pour le champ de nom de domaine supplémentaire.
- À cette fin, Linux utilise les appels système sethostname et setdomainname. Notez qu'il n'y a pas de norme qui dit que le nom d'hôte défini par sethostname est la même chaîne que le champ nodename de la structure renvoyée par uname() (en effet, certains systèmes autorisent un nom d'hôte de 256 octets et un nom de noeud de 8 octets), mais c'est vrai sous Linux. Il en va de même pour setdomainname et le champ domainname.
- La longueur des champs dans la structure varie. Certains systèmes d'exploitation ou bibliothèques utilisent un 9 ou 33 ou 65 ou 257 codé en dur. D'autres systèmes utilisent SYS_NMLN ou _SYS_NMLN ou UTSLEN ou _UTSNAME_LENGTH. Il est clair que c'est une mauvaise idée d'utiliser l'une de ces constantes ; utilisez simplement sizeof(...). Souvent, 257 est choisi afin d'avoir de la place pour un nom d'hôte Internet.
Voir également
Système d'exploitation - Linux - Références de commandes et de programmes - «uname»
Dernière mise à jour : Dimanche, le 22 mars 2015