Provided by: manpages-es_1.55-10_all bug

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)

Linux 2.5.0                                     15 diciembre 2001                                       UNAME(2)