dwww Home | Manual pages | Find package

ttyslot(3)                 Library Functions Manual                 ttyslot(3)

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 termi-
       nal : « 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  rechan-
       geant à l'inverse et en renvoyant un signal.

       Sous UNIX V7, le format a changé : le second caractère devenait l'argu-
       ment pour getty(8) indiquant la séquence de vitesses à  essayer  (« 0 »
       signifiait « essayer en boucle 300-1200-150-110 bauds » et « 4 » signi-
       fiait « 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 sys-
       tèmes type System V employaient /etc/inittab à la place.

   Histoire ancienne (bis)
       D'autre part, il existe un fichier /etc/utmp listant les gens actuelle-
       ment  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 uti-
       lisant  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 prin-
       cipe) 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 sys-
       tè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'uti-
       lisateur appelant dans la base de données de comptabilité des  utilisa-
       teurs.

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 PO-
       SIX.1-2001. SUSv2 demande un -1 en cas d'erreur.

NOTES
       Le fichier utmp se rencontre à divers endroits sur les différents  sys-
       tè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éclara-
       tion est fournie par <stdlib.h>. Depuis la glibc 2.24, <stdlib.h> four-
       nit  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  Chris-
       tophe  Blaess  <https://www.blaess.fr/christophe/>, Stéphan Rafin <ste-
       phan.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.cou-
       lon@wanadoo.fr>,  Julien  Cristau <jcristau@debian.org>, Thomas Huriaux
       <thomas.huriaux@gmail.com>, Nicolas François  <nicolas.francois@centra-
       liens.net>,  Florentin  Duneau <fduneau@gmail.com>, Simon Paillard <si-
       mon.paillard@resel.enst-bretagne.fr>,   Denis   Barbier    <barbier@de-
       bian.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⟩.

Pages du manuel de Linux 6.03   5 février 2023                      ttyslot(3)

Generated by dwww version 1.15 on Sat Jun 29 01:40:17 CEST 2024.