Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> Python

Tiện ích Pseudo-terminal (Giả terminal) trong Python

Module tiện ích Pseudo-terminal pty được định nghĩa để xử lý các khái niệm pseudo-terminal. Sử dụng nó, ta có thể khởi động tiến trình khác, và cũng có thể đọc/ghi từ terminal điều khiển (controlling terminal) bằng chương trình.

Module này phụ thuộc mạnh vào nền tảng (platform oriented). Nên dùng hệ thống UNIX để thực hiện các thao tác này.

Để dùng module pty, nên nhập bằng:

import pty

Một số phương thức của module pty:

Phương thức pty.fork()

Dùng để kết nối terminal điều khiển của tiến trình con (child) đến pseudo-terminal. Trả về pid và fd. Tiến trình con nhận pid 0, nhưng fd không hợp lệ. Giá trị trả về của tiến trình cha (parent) là pid của tiến trình con và fd giữ terminal điều khiển của con.

Phương thức pty.openpty()

Mở một cặp pseudo-terminal mới. Trả về file descriptor cho master và slave.

Phương thức pty.spawn(argv[, master_read[, stdin_read]])

Quy trình spawn dùng để kết nối terminal điều khiển của nó với standard I/O của tiến trình hiện tại. master_read và stdin_read đọc từ file descriptor. Kích thước mặc định 1024 byte.

Mã ví dụ

import pty, os

def process_parent_child():
    (process_id, fd) = pty.fork()
    print("Process ID của tiến trình hiện tại: " + str(os.getpid()))
    print("Process ID của tiến trình con: " + str(process_id))

process_parent_child()

master, slave = pty.openpty()
print('Tên của Master: ' + str(os.ttyname(master)))
print('Tên của Slave: ' + str(os.ttyname(slave)))

Kết quả

Process ID của tiến trình hiện tại: 12508
Process ID của tiến trình con: 12509
Tên của Master: /dev/ptmx
Tên của Slave: /dev/pts/2