Когда процесс открывает /dev/ptmx, то он получает описатель файла для основного псевдотерминала (PTM, pseudo-terminal master), а в каталоге /dev/pts создается устройство подчиненного псевдотерминала (PTS, pseudo-terminal slave).
Каждый описатель файла, полученный открытием /dev/ptmx, является независимым PTM со своим отдельным ассоциированным PTS, путь к нему можно определить, передав описатель на ptsname(3).
Перед открытием подчиненного псевдотерминала вы должен передать описатель файла основного терминала на grantpt(3) и unlockpt(3).
Когда и основной и подчиненный псевдотерминалы будут открыты, подчиненный начинает обеспечивать процессы интерфейсом, идентичным обычному терминалу.
Данные, записываемые на подчиненный терминал, появляются на основном терминале, как поток ввода. Данные, записываемые на основной терминал, появляются на подчиненном терминале, как поток ввода.
На практике псевдотерминалы используются для реализации эмуляторов терминала, таких как xterm(1), где данные, считываемые с основного псевдотерминала, интерпретируются приложениями в том же виде, как и данные с обычного терминала; а также в программах, реализующих удаленный доступ, таких как sshd(8), где данные, считываемые с основного псевдотерминала, отправляются по сети в программу-клиент, подключенной к терминула или эмулятору терминала.
Псевдотерминалы также могут использоваться для отправления данных вводв в программы, не желающие принимать обычный ввод через перенаправление, например su(8), или passwd(8)).
До этой схемы Unix98, основные псевдотерминалы назывались /dev/ptyp0, ... а подчиенные псевдотерминалы /dev/ttyp0, ... и для этого требовалось очень много предварительно размещенных записей для устройств.
Закладки на сайте Проследить за страницей |
Created 1996-2024 by Maxim Chirkov Добавить, Поддержать, Вебмастеру |