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

Download history 79222/week @ 2024-03-14 84736/week @ 2024-03-21 83511/week @ 2024-03-28 86423/week @ 2024-04-04 87754/week @ 2024-04-11 78701/week @ 2024-04-18 51541/week @ 2024-04-25 51154/week @ 2024-05-02 54013/week @ 2024-05-09 53637/week @ 2024-05-16 50952/week @ 2024-05-23 58395/week @ 2024-05-30 48755/week @ 2024-06-06 57194/week @ 2024-06-13 49580/week @ 2024-06-20 35608/week @ 2024-06-27

200,739 每月下载量
685 个 crate (69 个直接使用) 中使用

MIT 许可证

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 许可证 下分发。

依赖项