.\" Copyright (C) 2001 Andries Brouwer . .\" .\" Permission is granted to make and distribute verbatim copies of this .\" manual provided the copyright notice and this permission notice are .\" preserved on all copies. .\" .\" Permission is granted to copy and distribute modified versions of this .\" manual under the conditions for verbatim copying, provided that the .\" entire resulting derived work is distributed under the terms of a .\" permission notice identical to this one .\" .\" Since the Linux kernel and libraries are constantly changing, this .\" manual page may be incorrect or out-of-date. The author(s) assume no .\" responsibility for errors or omissions, or for damages resulting from .\" the use of the information contained herein. The author(s) may not .\" have taken the same level of care in the production of this manual, .\" which is licensed free of charge, as they might when working .\" professionally. .\" .\" Formatted or processed versions of this manual, if unaccompanied by .\" the source, must acknowledge the copyright and authors of this work. .\" .\" Traducción por Urko Lusa 19980204 .\" Revisado por Miguel Pérez Ibars el 1-diciembre-2004 .\" .TH UNAME 2 "15 diciembre 2001" "Linux 2.5.0" "Manual del programador de Linux" .SH NOMBRE uname \- obtiene el nombre e información del núcleo actual .SH SINOPSIS .B #include .sp .BI "int uname(struct utsname *" buf ); .SH DESCRIPCIÓN .B uname devuelve información del sistema en la estructura apuntada por .IR buf . La estructura .I utsname se define en .IR : .RS .nf struct utsname { .in +8 char sysname[]; char nodename[]; char release[]; char version[]; char machine[]; .in -8 #ifdef _GNU_SOURCE .in +8 char domainname[]; .in -8 #endif }; .fi .RE La longitud de los vectores de la estructura .I utsname es indefinida; los campos terminan en NUL. .SH "VALOR DEVUELTO" En caso de éxito, se devuelve cero. En caso de error, se devuelve \-1 y se establece el .I errno apropiado. .SH ERRORES .TP .B EFAULT .I buf no es válido. .SH "CONFORME A" SVr4, SVID, POSIX, X/OPEN. No hay ninguna llamada .B uname en BSD 4.3. .PP El miembro .I domainname (el nombre de dominio NIS o YP) es una extensión de GNU. .SH 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 \fInodename\fP 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 \fIdomainname\fP. .LP Para este propósito Linux utiliza las llamadas al sistema .BR sethostname (2) y .BR setdomainname (2). Observe que no hay ningún estándar que diga que el nombre de host establecido por .BR sethostname (2) sea la misma cadena que contiene el campo \fInodename\fP de la estructura devuelta por .B 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 .BR setdomainname (2) y el campo \fIdomainname\fP. .LP 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. .LP Ha habido tres llamadas al sistema \fIuname\fP() en Linux. La primera usaba longitud 9, la segunda usaba 65, la tercera también usa 65 pero añade el campo \fIdomainname\fP. .LP Parte de la información de utsname también puede ser accedida via .I sysctl y via .IR /proc/sys/kernel/ { ostype , .IR hostname , .IR osrelease , .IR version , .IR domainname }. .SH "VÉASE TAMBIÉN" .BR uname (1), .BR getdomainname (2), .BR gethostname (2)