13 个版本
使用旧的 Rust 2015
0.3.3 | 2020 年 10 月 13 日 |
---|---|
0.3.2 | 2020 年 4 月 5 日 |
0.3.1 | 2018 年 10 月 8 日 |
0.3.0 | 2017 年 12 月 3 日 |
0.0.3 | 2015 年 3 月 29 日 |
#11 in Unix API
200,739 每月下载量
在 685 个 crate (69 个直接使用) 中使用
75KB
1.5K SLoC
Termios Rust 绑定
termios
crate 为 Rust 编程语言提供了对 Unix 操作系统实现的 终端 I/O 接口 的安全绑定。安全绑定是围绕原始 C 函数的小型包装器,将整数返回值转换为 std::io::Result
以指示成功或失败。
项目状态
这是一个维护度很低的工程。termios API 已有几十年历史。你不应该期望看到每日提交,所以如果你几年没看到提交,不要感到沮丧。这意味着项目是稳定的。这是好事。 :)
然而,如果你看到你希望实现的老补丁,请参阅 CONTRIBUTING.md
了解如何提供帮助。
依赖和兼容性
为了使用 termios
crate,你必须有一个实现了 termios API 的本地 libc
库。这应该适用于任何 Unix 操作系统。此库包含以下平台的 termios 定义
- Linux (x86_64, armv6l)
- Android (x86)
- OS X (x86_64)
- FreeBSD (amd64)
- OpenBSD (amd64)
- NetBSD (amd64)
- DragonFly BSD (x86_64)
- illumos (x86_64)
如果你对这里没有列出的平台感兴趣,请参阅 CONTRIBUTING.md
了解如何提供帮助。
使用方法
在 Cargo.toml
中将 termios
添加为依赖项
[dependencies]
termios = "0.3"
导入 termios
库及其所需的任何符号。您可能还需要 std::os::unix::io::RawFd
用于文件描述符和 std::io::Result
用于传播错误。
extern crate termios;
use std::io;
use std::os::unix::io::RawFd;
use termios::*;
fn setup_fd(fd: RawFd) -> io::Result<()> {
let mut termios = try!(Termios::from_fd(fd));
termios.c_iflag = IGNPAR | IGNBRK;
termios.c_oflag = 0;
termios.c_cflag = CS8 | CREAD | CLOCAL;
termios.c_lflag = 0;
try!(cfsetspeed(&mut termios, B9600));
try!(tcsetattr(fd, TCSANOW, &termios));
try!(tcflush(fd, TCIOFLUSH));
Ok(())
}
许可证
版权所有 © 2015 David Cuddeback
在 MIT 许可证 下分发。