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