5 个不稳定版本
使用旧的 Rust 2015
0.3.1 | 2024 年 4 月 2 日 |
---|---|
0.3.0 | 2023 年 11 月 8 日 |
0.2.1 | 2023 年 11 月 7 日 |
0.2.0 | 2023 年 11 月 7 日 |
0.1.0 | 2023 年 9 月 22 日 |
#3 in #伪
132 每月下载次数
在 2 个crate中使用 (通过 libshpool)
24KB
450 行
shpool_pty
pty crate 的分支,添加了一些额外的功能以帮助实现 shpool。有关更多信息,请参阅主 pty crate。
lib.rs
:
PTY
pty crate 提供了 pty
crate 的 pty::fork()
方法。这将在父进程中使用新的伪终端 (PTY) 进行分支。
此crate依赖于以下内容
libc
库- POSIX 环境
使用方法
将以下内容添加到您的 Cargo.toml
[dependencies]
pty = "0.2"
并在您的crate根目录下添加以下内容
extern crate shpool_pty;
pty::fork()
此函数返回 pty::Child
。它表示子进程及其 PTY。
例如,以下代码通过 pty::fork()
启动 tty(1)
命令,并输出命令的结果。
extern crate shpool_pty;
extern crate libc;
use std::ffi::CString;
use std::io::Read;
use std::process::{Command};
use shpool_pty::fork::*;
fn main() {
let fork = Fork::from_ptmx().unwrap();
if let Some(mut master) = fork.is_parent().ok() {
// Read output via PTY master
let mut output = String::new();
match master.read_to_string(&mut output) {
Ok(_nread) => println!("child tty is: {}", output.trim()),
Err(e) => panic!("read error: {}", e),
}
}
else {
// Child process just exec `tty`
Command::new("tty").status().expect("could not execute tty");
}
}
依赖关系
~61–335KB