basic/basic.rs
1use ptyprocess::PtyProcess;
2use std::io::{BufRead, BufReader, Result, Write};
3use std::process::Command;
4
5fn main() -> Result<()> {
6 // spawn a cat process
7 let mut process = PtyProcess::spawn(Command::new("cat"))?;
8
9 // create a communication stream
10 let mut stream = process.get_raw_handle()?;
11
12 // send a message to process
13 writeln!(stream, "Hello cat")?;
14
15 // read a line from the stream
16 let mut reader = BufReader::new(stream);
17 let mut buf = String::new();
18 reader.read_line(&mut buf)?;
19
20 println!("line was entered {buf:?}");
21
22 // stop the process
23 assert!(process.exit(true)?);
24
25 Ok(())
26}