1 个不稳定版本
使用旧的 Rust 2015
0.1.0 | 2022年12月19日 |
---|
#4 in #pseudo-terminal
2,165 每月下载量
23KB
400 行代码(不包括注释)
PTY
pty
包提供 pty::fork()
。这使得父进程使用新的伪终端 (PTY) 进行分支。
此包依赖于以下内容
libc
库- POSIX 环境
用法
将此添加到您的 Cargo.toml
[dependencies]
pty = "0.2"
并将此添加到您的包根目录
extern crate pty;
pty::fork()
此函数返回 pty::Child
。它代表子进程及其 PTY。
例如,以下代码通过 pty::fork()
启动 tty(1)
命令并输出命令的结果。
extern crate pty;
extern crate libc;
use std::ffi::CString;
use std::io::Read;
use std::ptr;
use 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");
}
}
运行时,我们将在子进程中获得新的 PTY。
$ tty
/dev/pts/5
$ cargo run
Running `target/debug/example`
child tty is: /dev/pts/8
文档
最新版本的 API 文档:http://hibariya.github.io/pty-rs/pty/index.html
贡献
- 分支它 ( https://github.com/hibariya/pty-rs/fork )
- 创建您的功能分支 (
git checkout -b my-new-feature
) - 提交您的更改 (
git commit -am 'Add some feature'
) - 推送到分支 (
git push origin my-new-feature
) - 创建一个新的 Pull Request
许可证
版权所有 (c) 2015 Hika Hibariya
在 MIT 许可证 下分发。
依赖关系
~250KB