Когда я пытаюсь запустить другое приложение, пишу что-нибудь на его стандартном вводе, а затем жду его завершения, мой код выглядит примерно так (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", мне нужно убедиться, что он выходит за пределы области видимости, прежде чем обращаться к нему снова, не так ли? И еще вопрос: зачем вообще нужно заимствовать «процесс»? »