Computer >> 컴퓨터 >  >> 프로그램 작성 >> Python

Python의 의사 터미널 유틸리티

<시간/>

의사 터미널 유틸리티 모듈 pty는 의사 터미널 개념을 처리하도록 정의됩니다. 이를 사용하여 다른 프로세스를 시작할 수 있으며 프로그램을 사용하여 제어 터미널에서 읽거나 쓸 수도 있습니다.

이 모듈은 고도로 플랫폼 지향적입니다. 이러한 작업을 수행하려면 UNIX 시스템을 사용해야 합니다.

pty 모듈을 사용하려면 −

를 사용하여 가져와야 합니다.
import pty

pty 모듈에는 다음과 같은 모듈이 있습니다.

메서드 pty.fork()

이 방법은 자식 제어 터미널을 의사 터미널에 연결하는 데 사용됩니다. 이 메서드는 pid와 fd를 반환합니다. 자식 프로세스는 pid 0을 얻지만 fd는 유효하지 않습니다. 부모의 반환 값은 자식 프로세스의 pid이고 fd는 자식 제어 터미널을 보유합니다.

메서드 pty.openpty()

이 방법은 새로운 의사 터미널 쌍을 여는 데 사용됩니다. 마스터와 슬레이브에 대한 파일 디스크립터를 반환합니다.

메서드 pty.spawn(argv[, master_read[, stdin_read]])

스폰 프로세스는 제어 터미널을 현재 프로세스 표준 io와 연결하는 데 사용됩니다. master_read 및 stdin_read는 파일 설명자에서 읽습니다. 기본 크기는 1024바이트입니다.

예시 코드

import pty, os
def process_parent_child():
   (process_id, fd) = pty.fork()
   print("The Process ID for the Current process is: " + str(os.getpid()))
   print("The Process ID for the Child process is: " + str(process_id))
process_parent_child()
master, slave = pty.openpty()
print('Name of the Master: ' + str(os.ttyname(master)))
print('Name of the Slave: ' + str(os.ttyname(slave)))

출력

The Process ID for the Current process is: 12508
The Process ID for the Child process is: 12509
Name of the Master: /dev/ptmx
Name of the Slave: /dev/pts/2