在 Rust 中将子进程的 stdout 转发到当前进程的 stdout 的正确方法是什么?

问题描述 投票:0回答:1

我很难弄清楚如何将命令的标准输出转发到当前进程的标准输出。我目前拥有的是这个,但它吸收了标准输出的所有内容,并且不考虑在进程终止之前以块的形式写入标准输出的进程:

let output = Command::new(cmd)
 .args(args)
 .output()
 .expect("Error reading process stdout");

print!(
  "{}",
  String::from_utf8(output.stdout).expect("Invalid output")
);

有没有办法增量读取此输出并在出现时打印块?

rust stdout
1个回答
0
投票

只需使用

spawn()
而不是
output()
。它将标准流(stdin、stdout 和 stderr)重定向到父进程。

© www.soinside.com 2019 - 2024. All rights reserved.