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

GNU                                              22 juillet 2013                                      TTYSLOT(3)