Function pty::fork
[−]
[src]
pub fn fork() -> Result<Child>
Fork with new pseudo-terminal (PTY).
Examples
extern crate libc; extern crate pty; use std::ffi::CString; use std::io::Read; use std::ptr; fn main() { let child = pty::fork().unwrap(); if child.pid() == 0 { // Child process just exec `tty` let cmd = CString::new("tty").unwrap().as_ptr(); let args = [cmd, ptr::null()].as_mut_ptr(); unsafe { libc::execvp(cmd, args) }; } else { // Read output via PTY master let mut output = String::new(); let mut pty_master = child.pty().unwrap(); match pty_master.read_to_string(&mut output) { Ok(_nread) => println!("child tty is: {}", output.trim()), Err(e) => panic!("read error: {}", e) } let _ = child.wait(); } }