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