如何在Rust中从异步进程接收输出?

时间:2019-04-07 21:27:53

标签: rust stdout

我想编写一个程序以逐渐读取另一个不会停止的进程(例如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程序的输出相同,并存储打印的每一行以便以后进行搜索。

0 个答案:

没有答案