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

NOMBRE

       ttyslot - encuentra la posición de la terminal de usuario actual en algún archivo

SINOPSIS

       #include <unistd.h>    /* en sistemas tipo BSD  */
       #include <stdlib.h>    /* en sistemas tipo SYSV */

       int ttyslot(void);

DESCRIPCIóN

       La  función  legacy  ttyslot() devuelve el índice de la entrada de usuario actual en algún
       fichero.

       Entonces "¿En qué fichero?" te preguntarás. Bueno, veamos algo de historia.

   Historia Antigua
       Solía haber un archivo /etc/ttys en Unix V6, que era leído por el  programa  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 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.

       En  Unix V7 el formato se cambió: aquí el segundo caracter era un argumento a 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".

       Sistemas  más  modernos  tienen  sintaxis  más  elaborada.   Los sistemas tipo SYSV tienen
       /etc/inittab en su lugar.

   Historia Antigua (2)
       Por otro lado, está el archivo /etc/utmp que listaba las personas que  estaban  conectadas
       en ese momento. Es mantenido por login(8).  Tiene un tamaño fijo, y el índice apropiado en
       el archivo estaba determinado por login(8) usando la  llamada  ttyslot()  para  hallar  el
       número de la línea en /etc/ttys (contando desde 1).

   La semántica de ttyslot
       Entonces,  la funcion ttyslot() devuelve el índice de la terminal controladora del proceso
       actual en el archivo /etc/ttys, y eso es (normalmente)  lo  mismo  que  el  índice  de  la
       entrada  del usuario actual en el archivo /etc/utmp.  BSD aún tiene el archivo /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 ttyslot() devuelve el índice del usuario
       actual en la base de datos de contabilidad de usuario.

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.

OBSERVACIONES

       El  archivo  utmp  se  encuentra  en  diversos lugares en distintos sistemas, por ejemplo:
       /etc/utmp, /var/adm/utmp, /var/run/utmp.

       La implementación de glibc2 de  esta  función  lee  el  archivo  _PATH_TTYS,  definido  en
       <ttyent.h>  como  "/etc/ttys".  Devuelve  0  en caso de error.  Como los sistemas Linux no
       suelen tener "/etc/ttys", siempre devolverá 0.

       Minix también tiene fttyslot(fd).

HISTORIA

       ttyslot() apareció en UNIX V7.

CONFORME A

       XPG2. Legacy en SUSv2. Borrado en SUSv3.  SUSv2 requiere -1 en caso de error.

VÉASE TAMBIÉN

       getttyent(3), ttyname(3), utmp(5)