ttyslot(3) Library Functions Manual ttyslot(3) NOM ttyslot - Trouver l'emplacement du terminal en cours dans un fichier BIBLIOTHEQUE Bibliotheque C standard (libc, -lc) SYNOPSIS #include /* Voir NOTES */ int ttyslot(void); Exigences de macros de test de fonctionnalites pour la glibc (consulter feature_test_macros(7)) : ttyslot() : Depuis la glibc 2.24 : _DEFAULT_SOURCE De la glibc 2.20 a la glibc 2.23 : _DEFAULT_SOURCE || (_XOPEN_SOURCE && _XOPEN_SOURCE < 500) Pour la glibc anterieure et egale a 2.19 : _BSD_SOURCE || (_XOPEN_SOURCE && _XOPEN_SOURCE < 500) DESCRIPTION La fonction ttyslot() renvoie la position de l'entree 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 etait consulte par init(1) afin de savoir que faire sur chaque terminal. Chaque ligne etait composee de trois caracteres. Le premier etait << 0 >> ou << 1 >>, le << 0 >> signifiant << ignore >>. Le second caractere indiquait le terminal : << 8 >> signifiant << /dev/tty8 >>. Le troisieme caractere etait un argument pour getty(8) indiquant la sequence de vitesses a essayer (<< - >> signifiait << essayer a partir de 110 bauds >>). Ainsi, une ligne typique etait << 18- >>. Une deconnexion sur une ligne etait resolu en changeant le << 1 >> en << 0 >>, en envoyant un signal a init, en rechangeant a l'inverse et en renvoyant un signal. Sous UNIX V7, le format a change : le second caractere devenait l'argument pour getty(8) indiquant la sequence de vitesses a 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 etait << 14console >>. Les systemes ulterieurs utiliserent une syntaxe plus elaboree. Les systemes type System V employaient /etc/inittab a la place. Histoire ancienne (bis) D'autre part, il existe un fichier /etc/utmp listant les gens actuellement connectes. Il est gere par login(1). Il a une taille fixe, et la position appropriee dans le fichier est determinee par login(1) en utilisant l'appel ttyslot() pour trouver le numero de la ligne dans /etc/ttys (a partir de 1). SEMANTIQUE DE TTYSLOT Ainsi, la fonction ttyslot() renvoie l'index du terminal de controle du processus appelant dans le fichier /etc/ttys, qui est aussi (en principe) l'index de l'entree pour l'utilisateur en cours dans le fichier /etc/utmp. BSD utilise encore le fichier /etc/ttys, mais pas les systeme de type System V, qui ne peuvent donc pas s'y referer. Sur ces systemes, la documentation dit que ttyslot() renvoie l'index de l'utilisateur appelant dans la base de donnees de comptabilite des utilisateurs. VALEUR RENVOYEE Si elle reussit, cette fonction renvoie le numero d'entree. Si elle echoue (par exemple si aucun des descripteurs 0, 1 ou 2 n'est associe a un terminal trouve dans la base de donnees), elle renvoie 0 sur UNIX V6, V7 et les systemes BSD, mais -1 sur les autres systemes V. ATTRIBUTS Pour une explication des termes utilises dans cette section, consulter attributes(7). +-------------------------------+--------------------------+-----------+ |Interface | Attribut | Valeur | +-------------------------------+--------------------------+-----------+ |ttyslot() | Securite des threads | MT-Unsafe | +-------------------------------+--------------------------+-----------+ VERSIONS Le fichier utmp se rencontre a divers endroits sur les differents systemes, comme /etc/utmp, /var/adm/utmp ou /var/run/utmp. STANDARDS Aucun. HISTORIQUE SUSv1 ; mentionne comme historique dans SUSv2 ; supprime dans POSIX.1-2001. SUSv2 demande un -1 en cas d'erreur. L'implementation de cette fonction dans la glibc 2 lit le fichier _PATH_TTYS, defini dans comme "/etc/ttys". Elle renvoie 0 en cas d'erreur. Comme les systemes Linux n'ont habituellement pas de << /etc/ttys >>, elle renverra toujours 0. Sur les sytemes de type BSD et Linux, la declaration de ttyslot() est fournie par . Sur les systemes de type System V, la declaration est fournie par . Depuis la glibc 2.24, fournit aussi la declaration avec les definitions de macros de test de fonctionnalites 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 francaise de cette page de manuel a ete creee par Christophe Blaess , Stephan Rafin , Thierry Vignaud , Francois Micaux, Alain Portal , Jean-Philippe Guerard , Jean-Luc Coulon (f5ibh) , Julien Cristau , Thomas Huriaux , Nicolas Francois , Florentin Duneau , Simon Paillard , Denis Barbier , David Prevot et Jean-Pierre Giraud Cette traduction est une documentation libre ; veuillez vous reporter a la GNU General Public License version 3 concernant les conditions de copie et de distribution. Il n'y a aucune RESPONSABILITE LEGALE. Si vous decouvrez un bogue dans la traduction de cette page de manuel, veuillez envoyer un message a . Pages du manuel de Linux 6.06 31 octobre 2023 ttyslot(3)