Provided by: manpages-es_1.55-8_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)