Computer >> คอมพิวเตอร์ >  >> การเขียนโปรแกรม >> Python

ยูทิลิตี้เทอร์มินัลหลอกใน Python


pty โมดูลยูทิลิตี้เทอร์มินัลหลอกถูกกำหนดเพื่อจัดการกับแนวคิดเทอร์มินัลหลอก เมื่อใช้สิ่งนี้ เราจะสามารถเริ่มกระบวนการอื่น และยังอ่านหรือเขียนจากเทอร์มินัลควบคุมโดยใช้โปรแกรมได้อีกด้วย

โมดูลนี้เป็นแพลตฟอร์มที่มุ่งเน้นอย่างมาก เราควรใช้ระบบ UNIX เพื่อดำเนินการเหล่านี้

ในการใช้โมดูล pty เราควรนำเข้าโดยใช้ −

import pty

มีบางโมดูลของโมดูล pty เหล่านี้คือ −

วิธีการ pty.fork()

วิธีนี้ใช้เพื่อเชื่อมต่อเทอร์มินัลควบคุมย่อยกับเทอร์มินัลหลอก วิธีนี้จะคืนค่า pid และ fd กระบวนการลูกได้รับ pid 0 แต่ fd ไม่ถูกต้อง ค่าที่ส่งกลับของพาเรนต์คือ pid ของโปรเซสลูก และ fd ถือเทอร์มินัลการควบคุมลูกไว้

วิธีการ pty.openpty()

วิธีนี้ใช้เพื่อเปิดคู่เทอร์มินัลหลอกใหม่ ส่งคืน file descriptor สำหรับมาสเตอร์และสเลฟ

วิธีการ pty.spawn(argv[, master_read[, stdin_read]])

กระบวนการวางไข่ใช้เพื่อเชื่อมต่อเทอร์มินัลการควบคุมกับกระบวนการปัจจุบัน มาตรฐาน io master_read และ stdin_read อ่านจาก file descriptor ขนาดเริ่มต้นคือ 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