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

NOMBRE

       uname - obtiene el nombre e informacion del nucleo actual

SINOPSIS

       #include <sys/utsname.h>

       int uname(struct utsname *buf);

DESCRIPCI'ON

       uname  devuelve  informacion  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 exito, se devuelve cero. En caso de error, se devuelve -1 y
       se establece el errno apropiado.

ERRORES

       EFAULT buf no es valido.

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  extension
       de GNU.

OBSERVACIONES

       Esta  es  una  llamada  al  sistema,  y  el  sistema  operativo  conoce
       presumiblemente su nombre, revision y version. Tambien sabe  sobre  que
       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  maquina  actual  en  alguna  red
       indefinida, pero normalmente las maquinas se encuentran en mas  de  una
       red  y  tienen  muchos  nombres.  Ademas,  el nucleo no tiene manera de
       conocer estas situaciones, por lo que hay que decirle  como  actuar  en
       este caso.  Lo mismo vale para el campo adicional domainname.

       Para   este   proposito   Linux   utiliza   las   llamadas  al  sistema
       sethostname(2) y setdomainname(2).  Observe que no hay ningun  estandar
       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 esto es cierto en Linux. Lo mismo
       vale para setdomainname(2) y el campo domainname.

       La  longitud  de  los  campos  en la estructura varia. 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
       solo  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 tambien usa 65 pero anade
       el campo domainname.

       Parte de la informacion de  utsname  tambien  puede  ser  accedida  via
       sysctl  y  via  /proc/sys/kernel/{ostype, hostname, osrelease, version,
       domainname}.

V'EASE TAMBI'EN

       uname(1), getdomainname(2), gethostname(2)