我想编写一个程序以逐渐读取另一个不会停止的进程(例如Web服务器)的输出。
我曾尝试像这样在BufReader
的{{1}}进程的stdout
上使用Child
,但是当该进程在其两次打印之间休眠时,它不起作用。
let mut stdout = Command::new("python")
.arg("printer.py")
.stdout(Stdio::piped())
.spawn()
.unwrap()
.stdout
.ok_or_else(|| "Could not capture stdout")
.unwrap();
let mut reader = BufReader::new(stdout);
let mut line = String::new();
loop {
reader.read_line(&mut line).unwrap();
println!("{}", line);
}
我希望python printer.py
的输出与Rust程序的输出相同,并存储打印的每一行以便以后进行搜索。