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

NOMBRE

       ttyslot  -  encuentra  la  posicion de la terminal de usuario actual en
       algun archivo

SINOPSIS

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

       int ttyslot(void);

DESCRIPCI'oN

       La funcion legacy ttyslot() devuelve el indice de la entrada de usuario
       actual en algun fichero.

       Entonces  "cEn  que  fichero?"  te  preguntaras.  Bueno, veamos algo de
       historia.

   Historia Antigua
       Solia haber un archivo /etc/ttys en Unix  V6,  que  era  leido  por  el
       programa  init(8)  para  descubrir  que  hacer con cada linea terminal.
       Cada linea consistia en tres caracteres.  El primer caracter podia  ser
       '0'  o  '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 linea a probar ('-' era: comienza a probar 110 baudios). De modo que
       la  tipica  linea  era  "18-".   Un cuelgue en alguna linea se resolvia
       cambiando el '1' a  '0',  senalando  a  init,  cambiando  otra  vez,  y
       volviendo a senalar a init de nuevo.

       En  Unix  V7  el  formato  se  cambio:  aqui el segundo caracter era un
       argumento a getty(8) que indicaba la secuencia de velocidades de  linea
       a  probar  ('0'  era:  cicla  sobre  300-1200-150-110  baudios;  '4' se
       destinaba a la consola en linea DECwriter) mientras que el resto de  la
       linea  contenia  el  nombre  del tty.  De modo que una linea tipica era
       "14console".

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

   Historia Antigua (2)
       Por  otro  lado, esta el archivo /etc/utmp que listaba las personas que
       estaban conectadas en ese momento. Es mantenido por login(8).  Tiene un
       tamano fijo, y el indice apropiado en el archivo estaba determinado por
       login(8) usando la llamada ttyslot() para hallar el numero de la  linea
       en /etc/ttys (contando desde 1).

   La sem'antica de ttyslot
       Entonces,  la  funcion  ttyslot()  devuelve  el  indice  de la terminal
       controladora del proceso actual en  el  archivo  /etc/ttys,  y  eso  es
       (normalmente)  lo  mismo que el indice de la entrada del usuario actual
       en el archivo /etc/utmp.  BSD aun tiene el archivo /etc/ttys , pero los
       sistemas  tipo  SYSV  no, y por tanto no pueden referenciarlo.  De modo
       que,  en  semejantes  sistemas  la  documentacion  dice  que  ttyslot()
       devuelve  el  indice  del  usuario  actual  en  la  base  de  datos  de
       contabilidad de usuario.

VALOR DEVUELTO

       Si termina satisfactoriamente,  esta  funcion  devuelve  el  numero  de
       ranura.   En  caso  de  error  (p.e.: si ninguno de los descriptores de
       archivo 0, 1 o 2 esta 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  implementacion de glibc2 de esta funcion 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 devolvera
       0.

       Minix tambien tiene fttyslot(fd).

HISTORIA

       ttyslot() aparecio en UNIX V7.

CONFORME A

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

V'EASE TAMBI'EN

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