table of contents
PTS(4) | Руководство программиста Linux | PTS(4) |
ИМЯ¶
ptmx, pts - основной и подчинённый псевдо-терминал
ОПИСАНИЕ¶
Файл /dev/ptmx является символьным файлом со старшим номером 5 и младшим номером 2, обычно имеет права доступа 0666 и принадлежит root.root. Используется для создания пары основного и подчинённого псевдо-терминала.
Когда процесс открывает /dev/ptmx, то он получает дескриптор файла основного псевдо-терминала (PTM, pseudoterminal master), а в каталоге /dev/pts создаётся устройство подчинённого псевдо-терминала (PTS, pseudoterminal slave). Каждый дескриптор файла, полученный открытием /dev/ptmx, является независимым PTM со своим отдельным, связанным с ним PTS, чей путь можно определить, передав дескриптор ptsname(3).
Перед открытием подчинённого псевдо-терминала вы должны передать дескриптор файла основного терминала в grantpt(3) и unlockpt(3).
Когда основной и подчинённый псевдо-терминалы будут открыты, подчинённый предоставляет процессам интерфейс, идентичный обычному терминалу.
Данные, записываемые на подчинённый терминал, появляются у дескриптора основного терминала как входные данные. Данные, записываемые на основной терминал, появляются на подчинённом терминале в виде входных данных.
На практике, псевдо-терминалы используются для реализации эмуляторов терминала, таких как xterm(1), где данные, считываемые с основного псевдо-терминала, интерпретируются приложениями в том же виде, как и данные с обычного терминала, а также в программах, реализующих удалённый доступ, таких как sshd(8), где данные, считываемые с основного псевдо-терминала, отправляются по сети в программу-клиент, подключённую к терминалу или эмулятору терминала.
Псевдо-терминалы также могут использоваться для отправки вводимых данных в программы, не желающих принимать обычный ввод из канала (например su(1) и passwd(1)).
ФАЙЛЫ¶
/dev/ptmx, /dev/pts/*
ЗАМЕЧАНИЯ¶
Поддержка в Linux для всего вышеперечисленного (т.н. именование псевдо-терминалов UNIX 98) осуществляется через файловую систему devpts, которая монтируется к /dev/pts.
До схемы UNIX 98, основные псевдо-терминалы назывались /dev/ptyp0, ..., а подчинённые псевдо-терминалы — /dev/ttyp0, ..., и для них требовалось очень много предварительно размещённых нод устройств.
СМОТРИТЕ ТАКЖЕ¶
2002-10-09 | Linux |