.\" Copyright (C) 2002 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. .\" .\" This replaces an earlier man page written by Walter Harms .\" . .\" .\" Translation performed by Jorge Rodriguez (A.K.A. Tiriel) .\" .TH TTYSLOT 3 "20 julio 2002" "GNU" "Manual del Programador de Linux" .SH NOMBRE ttyslot \- encuentra la posición de la terminal de usuario actual en algún archivo .SH SINOPSIS .sp .BR "#include " " /* en sistemas tipo BSD */" .br .BR "#include " " /* en sistemas tipo SYSV */" .sp .B "int ttyslot(void);" .SH DESCRIPCIóN La función legacy .BR ttyslot () devuelve el índice de la entrada de usuario actual en algún fichero. .LP Entonces "¿En qué fichero?" te preguntarás. Bueno, veamos algo de historia. .SS "Historia Antigua" Solía haber un archivo .I /etc/ttys en Unix V6, que era leído por el programa .BR init (8) para descubrir qué hacer con cada línea terminal. Cada línea consistía en tres caracteres. El primer caracter podía ser '0' ó '1', donde '0' significaba "ignorar". El segundo caracter denotaba la terminal: '8' significaba "/dev/tty8". El tercer caracter era un argumento para .BR getty (8) que indicaba la secuencia de velocidades de línea a probar ('-' era: comienza a probar 110 baudios). De modo que la típica línea era "18-". Un cuelgue en alguna línea se resolvía cambiando el '1' a '0', señalando a init, cambiando otra vez, y volviendo a señalar a init de nuevo. .LP En Unix V7 el formato se cambió: aquí el segundo caracter era un argumento a .BR getty (8) que indicaba la secuencia de velocidades de línea a probar ('0' era: cicla sobre 300-1200-150-110 baudios; '4' se destinaba a la consola en línea DECwriter) mientras que el resto de la línea contenía el nombre del tty. De modo que una línea típica era "14console". .LP Sistemas más modernos tienen sintaxis más elaborada. Los sistemas tipo SYSV tienen .I /etc/inittab en su lugar. .SS "Historia Antigua (2)" Por otro lado, está el archivo .I /etc/utmp que listaba las personas que estaban conectadas en ese momento. Es mantenido por .BR login (8). Tiene un tamaño fijo, y el índice apropiado en el archivo estaba determinado por .BR login (8) usando la llamada .BR ttyslot () para hallar el número de la línea en .IR /etc/ttys (contando desde 1). .SS "La semántica de ttyslot" Entonces, la funcion .BR ttyslot () devuelve el índice de la terminal controladora del proceso actual en el archivo .IR /etc/ttys , y eso es (normalmente) lo mismo que el índice de la entrada del usuario actual en el archivo .IR /etc/utmp . BSD aún tiene el archivo .I /etc/ttys , pero los sistemas tipo SYSV no, y por tanto no pueden referenciarlo. De modo que, en semejantes sistemas la documentación dice que .BR ttyslot () devuelve el índice del usuario actual en la base de datos de contabilidad de usuario. .SH "VALOR DEVUELTO" Si termina satisfactoriamente, esta función devuelve el número de ranura. En caso de error (p.e.: si ninguno de los descriptores de archivo 0, 1 ó 2 está asociado con una terminal que aparece en esta base de datos) devuelve 0 en Unix V6 y V7 y sistemas tipo BSD, devuelve \-1 en sistemas tipo SYSV. .SH OBSERVACIONES El archivo utmp se encuentra en diversos lugares en distintos sistemas, por ejemplo: .IR /etc/utmp , .IR /var/adm/utmp , .IR /var/run/utmp . .LP La implementación de glibc2 de esta función lee el archivo .BR _PATH_TTYS , definido en .I como "/etc/ttys". Devuelve 0 en caso de error. Como los sistemas Linux no suelen tener "/etc/ttys", siempre devolverá 0. .LP Minix también tiene .IR fttyslot ( fd ). .SH HISTORIA .BR ttyslot () apareció en UNIX V7. .SH "CONFORME A" XPG2. Legacy en SUSv2. Borrado en SUSv3. SUSv2 requiere \-1 en caso de error. .SH "VÉASE TAMBIÉN" .BR getttyent (3), .BR ttyname (3), .BR utmp (5)