Python Glossary English

Python 3.11+Linux · macOSosфункция

os.login_tty

os — псевдотерминалы (pty)

Делает указанный дескриптор управляющим терминалом текущего процесса (для сессии). Доступно на Unix.

Синтаксис

os.login_tty(...)

Делает переданный дескриптор управляющим терминалом и стандартными потоками текущего процесса: создаёт новую сессию и перенаправляет на него 0, 1 и 2. Вызывается в потомке после fork. Исходный дескриптор закрывается. Появилась в Python 3.11.

Примеры

import os
master, slave = os.openpty()   # только Unix: пара дескрипторов псевдотерминала
pid = os.fork()   # только Unix: 0 в потомке, pid потомка в родителе
if pid == 0: os.login_tty(slave); print('hello'); os._exit(0)   # → ? только Unix: потомок стал лидером сессии, slave стал его управляющим терминалом и stdin/stdout/stderr (и сам дескриптор закрыт), печать уходит в псевдотерминал
print(os.read(master, 1024))   # → b'hello\r\n' — родитель читает вывод потомка, терминал заменяет \n на \r\n
r, w = os.pipe()   # обычный канал, не терминал
print(os.login_tty(r))   # → OSError — годится только дескриптор терминала

См. также

Частые ошибки

Открыть в полном глоссарииdocs.python.orgСообщить о неточности