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)