Loading

NOM

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

SYNOPSIS

       #include <unistd.h> /* sur les systèmes BSD et Linux */
       #include <stdlib.h> /* sur les systèmes V ou assimilés */

       int ttyslot(void);

   Exigences  de  macros  de  test  de  fonctionnalités  pour  la  glibc (voir
   feature_test_macros(7)) :

       ttyslot() : _BSD_SOURCE || (_XOPEN_SOURCE_EXTENDED &&
       ! _XOPEN_SOURCE>= 500)

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

       « Dans quel fichier ? » demandez-vous... 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 bauds » et « 4 »
       signifiait  « console  DECwriter »)  tandis  que  le  reste de la ligne
       contenait le nom du terminal. Une ligne typique était « 14console ».

       Les systèmes ultérieurs utilisèrent  une  syntaxe  plus  élaborée.  Les
       systèmes type System 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(1). Il a une taille fixe,
       et  la  position appropriée dans le fichier est déterminée par login(1)
       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 de type System V, qui ne peuvent donc pas s’y référer. Sur
       ces systèmes, la documentation dit que  ttyslot()  renvoie  l’index  de
       l’utilisateur  appelant  dans  la  base  de données 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, V7 et les systèmes BSD, mais -1 sur les autres systèmes V.

CONFORMITÉ

       SUSv1 ;   mentionné   comme   historique  dans  SUSv2 ;  supprimé  dans
       POSIX.1-2001. SUSv2 demande un -1 en cas d’erreur.

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).

VOIR AUSSI

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

COLOPHON

       Cette page fait partie de  la  publication  3.23  du  projet  man-pages
       Linux.  Une description du projet et des instructions pour signaler des
       anomalies      peuvent      être       trouvées       à       l’adresse
       http://www.kernel.org/doc/man-pages/.

TRADUCTION

       Cette  page  de  manuel  a  été  traduite et mise à jour par Christophe
       Blaess <http://www.blaess.fr/christophe/> entre 1996 et 2003, puis  par
       Alain  Portal  <aportal AT univ-montp2 DOT fr> jusqu’en 2006, et mise à
       disposition sur http://manpagesfr.free.fr/.

       Les mises à jour et corrections de la version présente dans Debian sont
       directement         gérées         par         Nicolas         François
       <nicolas.francois@centraliens.net>   et   l’équipe    francophone    de
       traduction de Debian.

       Veuillez   signaler   toute   erreur   de   traduction  en  écrivant  à
       <debian-l10n-french@lists.debian.org> ou par un rapport de bogue sur le
       paquet manpages-fr.

       Vous  pouvez  toujours avoir accès à la version anglaise de ce document
       en utilisant la commande « man -L C <section> <page_de_man> ».