Provided by: manpages-fr-dev_4.19.0-7_all bug

NOM

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

BIBLIOTHÈQUE

       Bibliothèque C standard (libc, -lc)

SYNOPSIS

       #include <unistd.h>       /* Voir NOTES */

       int ttyslot(void);

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

       ttyslot() :
           Depuis la glibc 2.24 :
               _DEFAULT_SOURCE
           De la glibc 2.20 à la glibc 2.23 :
               _DEFAULT_SOURCE || (_XOPEN_SOURCE && _XOPEN_SOURCE < 500)
           Pour la glibc antérieure et égale à 2.19 :
               _BSD_SOURCE || (_XOPEN_SOURCE && _XOPEN_SOURCE < 500)

DESCRIPTION

       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(1) 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  était  résolu 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é à 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.

ATTRIBUTS

       Pour une explication des termes utilisés dans cette section, consulter attributes(7).

       ┌──────────────────────────────────────────────────────┬──────────────────────┬───────────┐
       │InterfaceAttributValeur    │
       ├──────────────────────────────────────────────────────┼──────────────────────┼───────────┤
       │ttyslot()                                             │ Sécurité des threads │ MT-Unsafe │
       └──────────────────────────────────────────────────────┴──────────────────────┴───────────┘

STANDARDS

       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 ou /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.

       Sur  les  sytèmes  de  type  BSD  et  Linux,  la  déclaration de ttyslot() est fournie par
       <unistd.h>. Sur les systèmes de type System V, la déclaration est fournie par  <stdlib.h>.
       Depuis  la  glibc 2.24,  <stdlib.h>  fournit  aussi la déclaration avec les définitions de
       macros de test de fonctionnalités suivantes :

           (_XOPEN_SOURCE >= 500 ||
                   (_XOPEN_SOURCE && _XOPEN_SOURCE_EXTENDED))
               && ! (_POSIX_C_SOURCE >= 200112L || _XOPEN_SOURCE >= 600)

       Minix avait aussi fttyslot(fd).

VOIR AUSSI

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

TRADUCTION

       La traduction française de cette  page  de  manuel  a  été  créée  par  Christophe  Blaess
       <https://www.blaess.fr/christophe/>,  Stéphan  Rafin  <stephan.rafin@laposte.net>, Thierry
       Vignaud <tvignaud@mandriva.com>, François Micaux, Alain  Portal  <aportal@univ-montp2.fr>,
       Jean-Philippe    Guérard   <fevrier@tigreraye.org>,   Jean-Luc   Coulon   (f5ibh)   <jean-
       luc.coulon@wanadoo.fr>,   Julien    Cristau    <jcristau@debian.org>,    Thomas    Huriaux
       <thomas.huriaux@gmail.com>, Nicolas François <nicolas.francois@centraliens.net>, Florentin
       Duneau <fduneau@gmail.com>, Simon Paillard <simon.paillard@resel.enst-bretagne.fr>,  Denis
       Barbier  <barbier@debian.org>,  David  Prévot  <david@tilapin.org>  et  Jean-Pierre Giraud
       <jean-pierregiraud@neuf.fr>

       Cette traduction est une documentation libre ; veuillez vous reporter  à  la  GNU  General
       Public   License   version 3  ⟨https://www.gnu.org/licenses/gpl-3.0.html⟩  concernant  les
       conditions de copie et de distribution. Il n'y a aucune RESPONSABILITÉ LÉGALE.

       Si vous découvrez un bogue dans la traduction de cette page de manuel, veuillez envoyer un
       message à ⟨debian-l10n-french@lists.debian.org⟩.