5个版本 (3个破坏性更新)
0.4.0 | 2023年8月7日 |
---|---|
0.3.0 | 2023年3月8日 |
0.2.0 | 2021年12月15日 |
0.1.1 | 2021年11月10日 |
0.1.0 | 2021年3月6日 |
在 异步 中排名第 187
每月下载量 7,120
在 8 crate 中使用
39KB
854 行
pty-process
此crate是围绕 tokio::process::Command
或 std::process::Command
的包装,它提供了分配pty并在此pty上创建新进程的能力,其中pty是它们的控制终端。这允许操纵交互式程序。
基本功能如下所示
let mut pty = pty_process::Pty::new().unwrap();
pty.resize(pty_process::Size::new(24, 80)).unwrap();
let mut cmd = pty_process::Command::new("nethack");
let child = cmd.spawn(&pty.pts().unwrap()).unwrap();
返回的 child
是 tokio::process::Child
的正常实例(或 std::process::Child
用于 blocking
变体),其 stdin
/stdout
/stderr
文件描述符指向给定的 pty。The pty
实例实现了 tokio::io::AsyncRead
和 tokio::io::AsyncWrite
(或 std::io::Read
和 std::io::Write
用于 blocking
变体),可用于与子进程通信。子进程也将成为新会话的会话领导者,并且该会话的控制终端将被设置为给定的 pty。
特性
默认情况下,只有 blocking
API 可用。要包括异步 API,必须启用 async
功能。
依赖关系
~1–11MB
~127K SLoC