The termios
crate provides safe bindings for the Rust programming language to the terminal I/O
interface implemented by
Unix operating systems. The safe bindings are a small wrapper around the raw C functions, which
converts integer return values to std::io::Result
to indicate success or failure.
In order to use the termios
crate, you must have a native libc
library that implements the
termios API. This should be available on any Unix operating system. It has been confirmed to work on
the following platforms:
- Linux (x86_64, armv6l)
- OS X (x86_64)
- FreeBSD (amd64)
Add termios
as a dependency in Cargo.toml
:
[dependencies]
termios = "0.2"
Import the termios
crate and any symbols needed from termios
. You may also need
std::os::unix::io::RawFd
for file descriptors and std::io::Result
to propagate errors.
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(())
}
Copyright © 2015 David Cuddeback
Distributed under the MIT License.