NOM¶
pty - Interfaces de pseudoterminaux
DESCRIPTION¶
Un pseudoterminal (parfois abrégé en
« pty ») est une paire de
périphériques caractères virtuels qui fournissent un
canal de communication bidirectionnelle. Un bout du canal est appelé le
maître ; l'autre bout est appelé
esclave.
Le bout esclave du pseudoterminal fournit une interface qui se comporte
exactement comme un terminal classique. Un processus qui s'attend à
être connecté à un terminal peut ouvrir le bout esclave
d'un pseudoterminal puis être piloté par un programme qui a
ouvert le bout maître. Tout ce qui est écrit sur le
maître est fourni au processus sur l'esclave comme si c'était
écrit sur un terminal. Par exemple, écrire le caractère
d'interruption (en général Contrôle-C) sur le
périphérique maître cause l'envoi d'un signal
d'interruption (
SIGINT) au groupe de processus qui est connecté
à l'esclave. Réciproquement, tout ce qui est écrit sur
l'esclave peut être lu par le processus qui est connecté au
périphérique maître. Les pseudoterminaux sont
utilisés par des applications telles que des services de login à
distance (
ssh(1),
rlogin(1),
telnet(1)), les
émulateurs de terminaux,
script(1),
screen(1), et
expect(1).
Historiquement, deux API de pseudoterminaux ont évolué :
BSD et System V. SUSv1 a standardisé une API de pseudoterminal
basée sur l'interface System V, et cette API doit être
utilisée dans tous les nouveaux programmes qui utilisent des
pseudoterminaux.
Linux fournit à la fois des pseudoterminaux de type BSD et de type
System V (standardisés). Les terminaux de type System V
sont souvent appelés pseudoterminaux UNIX 98 sur les
systèmes Linux. Depuis le noyau 2.6.4, les pseudoterminaux de
type BSD sont considérés obsolètes (il peuvent
être désactivés à la configuration du
noyau) ; les pseudoterminaux UNIX 98 doivent être
utilisés dans les nouvelles applications.
Pseudoterminaux UNIX 98¶
Un maître de pseudoterminal UNIX 98 est ouvert en appelant
posix_openpt(3). (Cette fonction ouvre le périphérique de
clonage de maître,
/dev/ptmx ; consultez
pts(4).)
Après avoir initialisé le périphérique,
changé le propriétaire et les permissions du
périphérique esclave avec
grantpt(3), et
déverrouillé l'esclave avec
unlockpt(3), le
périphérique esclave correspondant peut être ouvert en
passant le nom renvoyé par
ptsname(3) dans un appel à
open(2).
Le noyau Linux impose une limite au nombre de pseudoterminaux UNIX 98
disponibles. Dans les noyaux jusqu'à 2.6.3 inclus, cette limite est
configurée à la compilation du noyau (
CONFIG_UNIX98_PTYS), et le nombre de pseudoterminaux autorisé
peut être jusqu'à 2048, avec une valeur par défaut de
256. Depuis le noyau 2.6.4, la limite est ajustable de façon
dynamique par le fichier
/proc/sys/kernel/pty/max, et un autre fichier,
/proc/sys/kernel/pty/nr, indique combien de pseudoterminaux sont
actuellement utilisés. Pour plus de détails sur ces fichiers,
consultez
proc(5).
Pseudoterminaux BSD¶
Les pseudoterminaux de type BSD sont fournis comme des paires
précréées, avec des noms de la forme
/dev/ptyXY
(maître) et
/dev/ttyXY (esclave), où X est une lettre de
l'ensemble de 16 caractères [p-za-e], et Y est une lettre de
l'ensemble de 16 caractères [0-9a-f]. (L'intervalle
précis de lettre dans ces ensembles varie entre les différentes
versions d'UNIX.) Par exemple,
/dev/ptyp1 et
/dev/ttyp1
constitue une paire de pseudoterminal BSD. Un processus trouve un
pseudoterminal inutilisé en essayant d'ouvrir chaque maître de
pseudoterminal avec
open(2) jusqu'à ce qu'une ouverture
réussisse. L'esclave de pseudoterminal correspondant peut ensuite
être ouvert (en remplaçant « pty »
par « tty » dans le nom du maître).
FICHIERS¶
/dev/ptmx (périphérique de clonage de maître
UNIX 98)
/dev/pts/* (périphériques esclaves UNIX 98)
/dev/pty[p-za-e][0-9a-f] (périphériques maîtres BSD)
/dev/tty[p-za-e][0-9a-f] (périphériques esclaves BSD)
NOTES¶
Une description de l'
ioctl(2) TIOCPKT, qui contrôle
l'opération en mode paquet, se trouve dans
tty_ioctl(4).
Les opérations
ioctl(2) BSD
TIOCSTOP,
TIOCSTART,
TIOCUCNTL et
TIOCREMOTE ne sont pas implémentées
sous Linux.
VOIR AUSSI¶
select(2),
setsid(2),
forkpty(3),
openpty(3),
termios(3),
pts(4),
tty(4),
tty_ioctl(4)
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). Julien Cristau 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> ».