File: uname.2

package info (click to toggle)
manpages-es 1.55-4
  • links: PTS
  • area: main
  • in suites: etch, etch-m68k
  • size: 7,472 kB
  • ctags: 6
  • sloc: sh: 1,349; makefile: 63
file content (129 lines) | stat: -rw-r--r-- 4,251 bytes parent folder | download | duplicates (4)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
.\" Copyright (C) 2001 Andries Brouwer <aeb@cwi.nl>.
.\"
.\" 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 <ulusa@arrakis.es> 19980204
.\" Revisado por Miguel Pérez Ibars <mpi79470@alu.um.es> 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 <sys/utsname.h>
.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 <sys/utsname.h> :
.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)