[dependencies]
libc = "0.2"
extern crate libc;
use std::mem;
use std::os::unix::io::AsRawFd;
fn main() {
let fd = std::io::stdout().as_raw_fd();
let mut winsize: libc::winsize = unsafe { mem::zeroed() };
if unsafe { libc::ioctl(fd, libc::TIOCGWINSZ, &mut winsize) } == -1 {
panic!("Failed to get window size: {:?}", std::io::Error::last_os_error());
}
let rows = winsize.ws_row as usize;
let cols = winsize.ws_col as usize;
println!("Window size is {}x{}", cols, rows);
}