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). ┌───────────────────────────────────┬──────────────────────┬───────────┐ │Interface │ Attribut │ Valeur │ ├───────────────────────────────────┼──────────────────────┼───────────┤ │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.