pty

您所在的位置:网站首页 openpty函数在那个库 pty

pty

2024-04-27 15:47| 来源: 网络整理| 查看: 265

生成一个进程,并将其控制终端连接到当前进程的标准 io。 这常被用来应对坚持要从控制终端读取数据的程序。 在 pty 背后生成的进程预期最后将被终止,而且当它被终止时 spawn 将会返回。

将当前进程的 STDIN 拷贝到子进程并将从子进程接收的数据拷贝到当前进程的 STDOUT 的循环。 如果当前进程的 STDIN 关闭则它不会向子进程发信号。

master_read 和 stdin_read 函数会被传入一个文件描述符供它们读取内容,并且它们总是应当返回一个字节串。 为了强制 spawn 在子进程退出之前返回,应当返回一个空字节数组来提示文件的结束。

两个函数的默认实现在每次函数被调用时将读取并返回至多 1024 个字节。 会向 master_read 回调传入伪终端的主文件描述符以从子进程读取输出,而向 stdin_read 传入文件描述符 0 以从父进程的标准输入读取数据。

从两个回调返回空字节串会被解读为文件结束 (EOF) 条件,在此之后回调将不再被调用。 如果 stdin_read 发出 EOF 信号则控制终端就不能再与父进程或子进程进行通信。 除非子进程将不带任何输入就退出,否则随后 spawn 将一直循环下去。 如果 master_read 发出 EOF 信号则会有相同的行为结果(至少是在 Linux 上)。

从子进程中的 os.waitpid() 返回退出状态值。

os.waitstatus_to_exitcode() 可被用来将退出状态转换为退出码。

引发一个 审计事件 pty.spawn,附带参数 argv。

在 3.4 版本发生变更: spawn() 现在会从子进程的 os.waitpid() 返回状态值。



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3