Provided by:
manpages-es_1.55-9_all 
NOMBRE
uname - obtiene el nombre e información del núcleo actual
SINOPSIS
#include <sys/utsname.h>
int uname(struct utsname *buf);
DESCRIPCIÓN
uname devuelve información del sistema en la estructura apuntada por
buf. La estructura utsname se define en <sys/utsname.h>:
struct utsname {
char sysname[];
char nodename[];
char release[];
char version[];
char machine[];
#ifdef _GNU_SOURCE
char domainname[];
#endif
};
La longitud de los vectores de la estructura utsname es indefinida; los
campos terminan en NUL.
VALOR DEVUELTO
En caso de éxito, se devuelve cero. En caso de error, se devuelve -1 y
se establece el errno apropiado.
ERRORES
EFAULT buf no es válido.
CONFORME A
SVr4, SVID, POSIX, X/OPEN. No hay ninguna llamada uname en BSD 4.3.
El miembro domainname (el nombre de dominio NIS o YP) es una extensión
de GNU.
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 nodename 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 domainname.
Para este propósito Linux utiliza las llamadas al sistema
sethostname(2) y setdomainname(2). Observe que no hay ningún estándar
que diga que el nombre de host establecido por sethostname(2) sea la
misma cadena que contiene el campo nodename de la estructura devuelta
por 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 setdomainname(2) y el campo domainname.
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.
Ha habido tres llamadas al sistema uname() en Linux. La primera usaba
longitud 9, la segunda usaba 65, la tercera también usa 65 pero añade
el campo domainname.
Parte de la información de utsname también puede ser accedida via
sysctl y via /proc/sys/kernel/{ostype, hostname, osrelease, version,
domainname}.
VÉASE TAMBIÉN
uname(1), getdomainname(2), gethostname(2)