当我尝试启动另一个应用程序时,在它的标准输入上写一些东西然后等待它完成,我的代码看起来像这样(old_io):
let mut process = Command::new("example_app")
.arg("test").spawn().ok().expect("Failed.");
{
let mut std = &mut process.stdin.as_mut().unwrap();
std.write_all(input_example);
}
let output = process.wait_with_output().ok().expect("Failed.");
这是有效的,但我不觉得这是要走的路。由于“&mut process.stdin.as_mut().unwrap()”似乎借用了“process”,我需要确保它在再次访问之前超出范围,不是吗?另一个问题是:为什么它需要借用“过程”?