Provided by: manpages-fr_1.67.0-1_all bug

NOM

       ttyslot - Trouver l’emplacement du terminal en cours dans un fichier.

SYNOPSIS

       #include <unistd.h>    /* sur les systèmes BSD */
       #include <stdlib.h>    /* sur les systèmes V   */

       int ttyslot(void);

DESCRIPTION

       La  fonction  ttyslot()  renvoie la position de l’entrée du terminal en
       cours dans un fichier.

       "Dans quel fichier ?" demandez-vouz... Bonne question ; voyons  un  peu
       d’histoire.

   HISTOIRE ANCIENNE
       Il  existait  un fichier /etc/ttys dans Unix V6, qui était consulté par
       init(8) afin de savoir que faire sur  chaque  terminal.   Chaque  ligne
       était  composée  de  trois caractères.  Le premier était ’0’ ou ’1’, le
       ’0’ signifiant "ignoré".  Le second caractère indiquait  le  terminal :
       ’8’  signifiant  "/dev/tty8".  Le troisième caractère était un argument
       pour  getty(8)  indiquant  la  séquence  de  vitesses  à  essayer  (’-’
       signifiait  "essayer  à  partir de 110 bauds"). Ainsi une ligne typique
       était "18-".  Une déconnexion sur une ligne se faisait en changeant  le
       ’1’ en ’0’, en envoyant un signal à init, en rechangeant à l’inverse et
       en renvoyant un signal.

       Sous Unix V7  le  format  a  changé :   le  second  caractère  devenait
       l’argument  pour  getty(8)  indiquant la séquence de vitesses à essayer
       (’0’ signifiait  "essayer  en  boucle  300-1200-150-110  baud"  et  ’4’
       signifiait  "console  DECwriter")  tandis  que  le  reste  de  la ligne
       contenait le nom du terminal. Une ligne typique était "14console".

       Les système ultérieurs utilisèrent  une  syntaxe  plus  élaborée.   Les
       systèmes type Sys-V employaient /etc/inittab à la place.

   HISTOIRE ANCIENNE (BIS)
       D’autre   part,  il  existe  un  fichier  /etc/utmp  listant  les  gens
       actuellement connectés. Il est géré par  login(8).   Il  a  une  taille
       fixe,  et  la  position  appropriée  dans le fichier est déterminée par
       login(8) en utilisant l’appel ttyslot() pour trouver le  numéro  de  la
       ligne dans /etc/ttys (à partir de 1).

   SÉMANTIQUE DE TTYSLOT
       Ainsi, la fonction ttyslot() renvoie l’index du terminal de contrôle du
       processus appelant  dans  le  fichier  /etc/ttys,  qui  est  aussi  (en
       principe)  l’index  de  l’entrée  pour  l’utilisateur  en cours dans le
       fichier /etc/utmp.  BSD utilise encore le fichier /etc/ttys,  mais  pas
       les  système  SyS-V,  qui  ne  peuvent  donc  pas  si référer.  Sur ces
       systèmes,  la  documentation  dit  que  ttyslot()  renvoie  l’index  de
       l’utilisateur  appelant  dans  la  base  de  donnée de comptabilité des
       utilisateurs.

VALEUR RENVOYÉE

       Si elle réussit, cette fonction renvoie le numéro  d’entrée.   Si  elle
       échoue  (par  exemple si aucun des descripteurs 0, 1 ou 2 n’est associé
       avec un terminal trouvé dans la base de données), elle  renvoie  0  sur
       Unix V6 et V7 les systèmes BSD, mais -1 sur les autres systèmes V.

NOTES

       Le  fichier  utmp  se  rencontre  à  divers endroits sur les différents
       systèmes, comme /etc/utmp, /var/adm/utmp, /var/run/utmp.

       L’implémentation de cette fonction dans  la  GlibC  2  lit  le  fichier
       _PATH_TTYS, défini dans <ttyent.h> comme "/etc/ttys". Elle renvoie 0 en
       cas d’erreur.  Comme les systèmes Linux  n’ont  habituellement  pas  de
       "/etc/ttys", elle renverra toujours 0.

       Minix avait aussi fttyslot(fd).

HISTORIQUE

       ttyslot() est apparu dans Unix V7.

CONFORMITÉ

       XPG2.  Legacy  dans SUSv2. Supprimé dans SUSv3.  SUSv2 demande un -1 en
       cas d’erreur.

VOIR AUSSI

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

TRADUCTION

       Christophe Blaess, 2003.