.\" -*- coding: UTF-8 -*- .\" Copyright (C) 2001 Andries Brouwer . .\" .\" %%%LICENSE_START(VERBATIM) .\" Permission is granted to make and distribute verbatim copies of this .\" manual provided the copyright notice and this permission notice are .\" preserved on all copies. .\" .\" Permission is granted to copy and distribute modified versions of this .\" manual under the conditions for verbatim copying, provided that the .\" entire resulting derived work is distributed under the terms of a .\" permission notice identical to this one. .\" .\" Since the Linux kernel and libraries are constantly changing, this .\" manual page may be incorrect or out-of-date. The author(s) assume no .\" responsibility for errors or omissions, or for damages resulting from .\" the use of the information contained herein. The author(s) may not .\" have taken the same level of care in the production of this manual, .\" which is licensed free of charge, as they might when working .\" professionally. .\" .\" Formatted or processed versions of this manual, if unaccompanied by .\" the source, must acknowledge the copyright and authors of this work. .\" %%%LICENSE_END .\" .\" 2007-07-05 mtk: Added details on underlying system call interfaces .\" .\"******************************************************************* .\" .\" This file was generated with po4a. Translate the source file. .\" .\"******************************************************************* .TH UNAME 2 "10 ottobre 2019" Linux "Manuale del programmatore di Linux" .SH NOME uname \- restituisce nome e informazioni sul kernel attuale .SH SINTASSI \fB#include \fP .PP \fBint uname(struct utsname *\fP\fIbuf\fP\fB);\fP .SH DESCRIZIONE \fBuname\fP() restituisce informazioni sul sistema attraverso il puntatore \fIbuf\fP. La struttura \fIutsname\fP è definita in \fI\fP: .PP .in +4n .EX struct utsname { char sysname[]; /* Nome del sistema operativo (per esempio "Linux") */ char nodename[]; /* Nome all'interno di "qualche rete definita dall'implementazione" */ 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 }; .EE .in .PP La lunghezza degli array in una \fIstruttura utsname\fP non è specificata (vedere NOTE); i campi sono terminati con un byte nullo (\(aq\e0\(aq). .SH "VALORE RESTITUITO" In caso di successo restituisce zero. In caso di errore restituisce \-1, e \fIerrno\fP verrà impostato di conseguenza. .SH ERRORI .TP \fBEFAULT\fP \fIbuf\fPnon è valido. .SH "CONFORME A" POSIX.1\-2001, POSIX.1\-2008, SVr4. Non c'è alcuna chiamata a \fBuname\fP() in 4.3BSD. .PP Il membro \fIdomainname\fP (il nome di dominio NIS o YP) è un'estensione GNU. .SH NOTE Questa è una chiamata di sistema, e si presume che il sistema operativo sappia il suo nome, rilascio e versione. Esso inoltre sa su quale hardware funziona. Quindi quattro dei campi della struttura sono significativi. D'altra parte il campo \fInodename\fP è insignificante: esso dà il nome della macchina presente in qualche rete indefinita, ma tipicamente le macchine si trovano in più di una rete e hanno più nomi. Inoltre il kernel non ha modo di sapere queste cose, quindi bisogna dirgli cosa rispondere. Lo stesso vale per il campo aggiuntivo \fIdomainname\fP. .PP A questo scopo Linux usa le chiamate di sistema \fBsethostname\fP(2) e \fBsetdomainname\fP(2). Notare che non c'è alcuno standard che dica che il nome host impostato da \fBsethostname\fP(2) è la stessa stringa del campo \fInodename\fP della struttura restituita da \fBuname\fP() (in verità, alcuni sistemi permettono un nome host di 256 byte e un nome nodo di 8 byte), ma ciò è vero in Linux. Lo stesso vale per \fBsetdomainname\fP(2) e per il campo \fIdomainname\fP. .PP 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 \fBSYS_NMLN\fP o \fB_SYS_NMLN\fP o \fBUTSLEN\fP o \fB_UTSNAME_LENGTH\fP. E' chiaramente una pessima idea usare una qualunque di queste costanti; si usi solo sizeof(...). Spesso si sceglie 257 per avere spazio per un nome di host internet. .PP Parte dell'informazione utsname è anche accessibile attraverso \fI/proc/sys/kernel/\fP{\fIostype\fP, \fIhostname\fP, \fIosrelease\fP, \fIversion\fP, \fIdomainname\fP}. .SS "Differenze tra la libreria C e il kernel" .\" That was back before Linux 1.0 .\" That was also back before Linux 1.0 Col tempo, aumenti nella dimensione della struttura \fIutsname\fP hanno portato a tre versioni successive di \fBuname\fP(): \fIsys_olduname\fP() (slot \fI__NR_oldolduname\fP), \fIsys_uname\fP() (slot \fI__NR_olduname\fP), e \fIsys_newuname\fP() (slot \fI__NR_uname\fP). La prima usava la lunghezza 9 per tutti i campi; la seconda usava 65; anche la terza usava 65, aggiungendo però il campo \fIdomainname\fP. La funzione wrapper di glibc, \fBuname \fP(), nasconde questi dettagli alle applicazioni, invocando la versione più recente della chiamata di sistema fornita dal kernel. .SH "VEDERE ANCHE" \fBuname\fP(1), \fBgetdomainname\fP(2), \fBgethostname\fP(2), \fButs_namespaces\fP(7) .SH COLOPHON Questa pagina fa parte del rilascio 5.10 del progetto Linux \fIman\-pages\fP. Una descrizione del progetto, le istruzioni per la segnalazione degli errori, e l'ultima versione di questa pagina si trovano su \%https://www.kernel.org/doc/man\-pages/. .SH TRADUZIONE La traduzione italiana di questa pagina di manuale è stata creata da Goffredo Baroncelli , Giulio Daprelà , Elisabetta Galli e Marco Curreli . Questa traduzione è documentazione libera; leggere la .UR https://www.gnu.org/licenses/gpl-3.0.html GNU General Public License Versione 3 .UE 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 .MT pluto-ildp@lists.pluto.it .ME .