1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129
|
.\" Copyright (C) 2001 Andries Brouwer <aeb@cwi.nl>.
.\"
.\" 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.
.\"
.\" Traducción por Urko Lusa <ulusa@arrakis.es> 19980204
.\" Revisado por Miguel Pérez Ibars <mpi79470@alu.um.es> el 1-diciembre-2004
.\"
.TH UNAME 2 "15 diciembre 2001" "Linux 2.5.0" "Manual del programador de Linux"
.SH NOMBRE
uname \- obtiene el nombre e información del núcleo actual
.SH SINOPSIS
.B #include <sys/utsname.h>
.sp
.BI "int uname(struct utsname *" buf );
.SH DESCRIPCIÓN
.B uname
devuelve información del sistema en la estructura apuntada por
.IR buf .
La estructura
.I utsname
se define en
.IR <sys/utsname.h> :
.RS
.nf
struct utsname {
.in +8
char sysname[];
char nodename[];
char release[];
char version[];
char machine[];
.in -8
#ifdef _GNU_SOURCE
.in +8
char domainname[];
.in -8
#endif
};
.fi
.RE
La longitud de los vectores de la estructura
.I utsname
es indefinida; los campos terminan en NUL.
.SH "VALOR DEVUELTO"
En caso de éxito, se devuelve cero. En caso de error, se devuelve \-1 y
se establece el
.I errno
apropiado.
.SH ERRORES
.TP
.B EFAULT
.I buf
no es válido.
.SH "CONFORME A"
SVr4, SVID, POSIX, X/OPEN.
No hay ninguna llamada
.B uname
en BSD 4.3.
.PP
El miembro
.I domainname
(el nombre de dominio NIS o YP) es una extensión de GNU.
.SH OBSERVACIONES
Esta es una llamada al sistema, y el sistema operativo conoce
presumiblemente su nombre, revisión y versión. También sabe sobre
qué hardware se ejecuta. Por tanto, cuatro de los campos de la estructura
son relevantes.
Por otra parte, el campo \fInodename\fP carece de importancia:
da el nombre de la máquina actual en alguna red indefinida,
pero normalmente las máquinas se encuentran en más de una red
y tienen muchos nombres. Además, el núcleo no tiene manera
de conocer estas situaciones, por lo que hay que decirle cómo
actuar en este caso.
Lo mismo vale para el campo adicional \fIdomainname\fP.
.LP
Para este propósito Linux utiliza las llamadas al sistema
.BR sethostname (2)
y
.BR setdomainname (2).
Observe que no hay ningún estándar que diga que el nombre de host
establecido por
.BR sethostname (2)
sea la misma cadena que contiene el campo \fInodename\fP de la estructura devuelta por
.B uname
(de hecho, algunos sistemas permiten un nombre de host de 256 bytes y un nodename
de 8 bytes), pero ésto es cierto en Linux. Lo mismo vale para
.BR setdomainname (2)
y el campo \fIdomainname\fP.
.LP
La longitud de los campos en la estructura varía. Algunos sistemas operativos
o bibliotecas usan valores fijos como 9, 33, 65 o 257. Otros sistemas usan
SYS_NMLN o _SYS_NMLN o UTSLEN o _UTSNAME_LENGTH. Claramente, es una mala idea
usar cualquiera de estas constantes - tan sólo utilice sizeof(...).
A menudo se elige 257 con el fin de tener espacio para un nombre de host en internet.
.LP
Ha habido tres llamadas al sistema \fIuname\fP() en Linux. La primera usaba
longitud 9, la segunda usaba 65, la tercera también usa 65 pero
añade el campo \fIdomainname\fP.
.LP
Parte de la información de utsname también puede ser accedida via
.I sysctl
y via
.IR /proc/sys/kernel/ { ostype ,
.IR hostname ,
.IR osrelease ,
.IR version ,
.IR domainname }.
.SH "VÉASE TAMBIÉN"
.BR uname (1),
.BR getdomainname (2),
.BR gethostname (2)
|