Provided by: manpages-fr-dev_3.65d1p1-1_all bug

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   (consultez
   feature_test_macros(7)) :

       ttyslot() :
           _BSD_SOURCE ||
           _XOPEN_SOURCE && _XOPEN_SOURCE_ < 500 && _XOPEN_SOURCE_EXTENDED

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

ATTRIBUTS

   Multithreading (voir pthreads(7))
       La  fonction  ttyslot()  n'est  pas  sûre dans un contexte multithread car elle appelle la
       fonction getttyent() qui n'est pas sûre non plus.

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

       Depuis   2010,   cette   traduction   est   maintenue   à   l'aide   de    l'outil    po4a
       <http://po4a.alioth.debian.org/>  par l'équipe de traduction francophone au sein du projet
       perkamon <http://perkamon.alioth.debian.org/>.

       Christophe   Blaess   <http://www.blaess.fr/christophe/>   (1996-2003),    Alain    Portal
       <http://manpagesfr.free.fr/>  (2003-2006).  Nicolas  François  et  l'équipe francophone de
       traduction de Debian (2006-2009).

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