Provided by: manpages-es_1.55-8_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)