table of contents
- bookworm 4.18.1-1
- bookworm-backports 4.24.0-2~bpo12+1
- testing 4.24.0-2
- unstable 4.24.0-2
uname(2) | System Calls Manual | uname(2) |
NOME¶
uname - restituisce nome e informazioni sul kernel attuale
LIBRERIA¶
Libreria C standard (libc, -lc)
SINTASSI¶
#include <sys/utsname.h>
int uname(struct utsname *buf);
DESCRIZIONE¶
uname() restituisce informazioni sul sistema attraverso il puntatore buf. La struttura utsname è definita in <sys/utsname.h>:
struct utsname {
char sysname[]; /* Nome del sistema operativo (per esempio "Linux") */
char nodename[]; /* Nome all'interno della rete alla
quale il nodo è eventualmente collegato. */
char release[]; /* rilascio del SO
(per esempio "2.6.28") */
char version[]; /* versione del SO */
char machine[]; /* identificatore hardware */ #ifdef _GNU_SOURCE
char domainname[]; /* nome di dominio NIS o YP */ #endif };
La lunghezza degli array in una struttura utsname non è specificata (vedere NOTE); i campi sono terminati con un byte nullo ('\0').
VALORE RESTITUITO¶
In caso di successo restituisce zero. In caso di errore restituisce -1, e errno verrà impostato per indicare l'errore.
ERRORI¶
- EFAULT
- bufnon è valido.
CONFORME A¶
POSIX.1-2001, POSIX.1-2008, SVr4, 4.4BSD.
Il membro domainname (il nome di dominio NIS o YP) è un'estensione GNU.
NOTE¶
Il kernel ha nome, rilascio, versione e tipo macchina già all'interno. Di converso, il campo nodename è configurato dall'amministratore perché corrisponda alla rete (questo è quello che storicamente BSD chiama "hostname" ed è impostato con sethostname(2)). Analogamente il campo domainname è impostato con setdomainname(2).
La lunghezza dei campi nella struttura varia. Alcuni sistemi operativi o librerie usano un valore prefissato 9 o 33 o 65 o 257. Altri sistemi usano SYS_NMLN o _SYS_NMLN o UTSLEN o _UTSNAME_LENGTH. È chiaramente una pessima idea usare una qualunque di queste costanti; si usi solo sizeof(...). SVr4 uses 257 per avere spazio per un nome di host Internet — questo è il valore più grande trovato in giro.
Parte dell'informazione utsname è anche accessibile attraverso /proc/sys/kernel/{ostype, hostname, osrelease, version, domainname}.
Differenze tra la libreria C e il kernel¶
Col tempo, aumenti nella dimensione della struttura utsname hanno portato a tre versioni successive di uname(): sys_olduname() (slot __NR_oldolduname), sys_uname() (slot __NR_olduname), e sys_newuname() (slot __NR_uname). La prima usava la lunghezza 9 per tutti i campi; la seconda usava 65; anche la terza usava 65, aggiungendo però il campo domainname. La funzione wrapper di glibc, uname (), nasconde questi dettagli alle applicazioni, invocando la versione più recente della chiamata di sistema fornita dal kernel.
VEDERE ANCHE¶
uname(1), getdomainname(2), gethostname(2), uts_namespaces(7)
TRADUZIONE¶
La traduzione italiana di questa pagina di manuale è stata creata da Goffredo Baroncelli <kreijack@usa.net>, Giulio Daprelà <giulio@pluto.it>, Elisabetta Galli <lab@kkk.it>, Marco Curreli <marcocurreli@tiscali.it> e Giuseppe Sacco <eppesuig@debian.org>
Questa traduzione è documentazione libera; leggere la GNU General Public License Versione 3 o successiva per le condizioni di copyright. Non ci assumiamo alcuna responsabilità.
Per segnalare errori nella traduzione di questa pagina di manuale inviare un messaggio a pluto-ildp@lists.pluto.it.
5 febbraio 2023 | Linux man-pages 6.03 |