Книга: Программирование для Linux. Профессиональный подход
6.6.1. Пример работы с псевдотерминалом
6.6.1. Пример работы с псевдотерминалом
Узнать, какое терминальное устройство закреплено за процессом, можно с помощью команды ps. Укажите в опции -о
столбец tty
, чтобы он был включен в отчет команды. Например, следующая команда отображает идентификаторы процессов, терминалы, на которых они работают, и командные строки их вызова:
% ps -o pid,tty,cmd
PID TTY CMD
28832 pts/4 bash
29287 pts/4 ps -o pid,tty,cmd
В данном случае терминальному окну соответствует псевдотерминал 4.
У каждого псевдотерминала есть запись в каталоге /dev/pts
:
% ls -l /dev/pts/4
crw--w---- 1 samuel tty 136, 4 Mar 8 02:56 /dev/pts/4
Обратите внимание на то, что псевдотерминал — это символьное устройство, а его владельцем является владелец процесса, для которого был создан псевдотерминал.
С псевдотерминалом можно обмениваться данными. При чтении перехватываются символы, вводимые с клавиатуры, а при записи данные отображаются в окне терминала.
Попробуйте открыть новое терминальное окно и определить номер псевдотерминала, выполнив команду ps -o pid,tty,cmd
. Теперь откройте другое окно и направьте какие-то данные на псевдотерминал. Например, если его номер 7, введите такую команду:
% echo "Hello, other window!" > /dev/pts/7
Заданная строка отобразится в первом окне. Когда терминальное окно будет закрыто, запись 7 исчезнет из каталога /dev/pts
.
Если ввести команду ps в терминальном окне, работающем в текстовом режиме, окажется, что ему соответствует обычное терминальное устройство, а не псевдотерминал:
% ps -о pid,tty,cmd
PID TTY CMD
29325 tty1 -bash
29353 tty1 ps -o pid,tty,cmd
- Пример установочного скрипта
- Пример из практики
- Типы данных для работы с датой и временем
- ПРИМЕР ПРОСТОЙ ПРОГРАММЫ НА ЯЗЫКЕ СИ
- Примеры получения статистики
- Пример применения метода «пять почему»
- Новые функции API для работы с Blob и массивами
- 10 Алгоритм работы с возражениями
- Пример 12-8. Частота встречаемости отдельных слов
- 1.2.5. Пример программы
- Пример 17-10. Блочный комментарий
- Примеры