UNAME(2)

NOM
uname - Obtenir des informations à propos du noyau

SYNOPSIS
#include <sys/utsname.h>

int uname(struct utsname *buf);

DESCRIPTION
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
Cet appel système 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, 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 n