Метод wait_with_output
Метод wait_with_output принадлежит классу Child
и ожидает завершения дочернего процесса, после чего возвращает
объект Output, содержащий код выхода, а также данные,
захваченные из стандартного вывода и потока ошибок.
Метод не принимает параметров и возвращает значение типа
io::Result<Output>. Для корректной работы метода
потоки вывода и ошибок должны быть настроены через Stdio::piped.
Синтаксис
child.wait_with_output()
Пример
Давайте запустим команду echo с аргументом
"abcde" и дождёмся её завершения, получив результат:
use std::process::Command;
fn main()
{
let child = Command::new("echo")
.arg("abcde")
.stdout(std::process::Stdio::piped())
.spawn()
.unwrap();
let output = child.wait_with_output().unwrap();
let text = String::from_utf8(output.stdout).unwrap();
println!("{}", text.trim());
}
Результат выполнения кода:
"abcde"
Пример
Давайте получим код выхода завершённого процесса:
use std::process::Command;
fn main()
{
let child = Command::new("echo")
.arg("12345")
.stdout(std::process::Stdio::piped())
.spawn()
.unwrap();
let output = child.wait_with_output().unwrap();
println!("{}", output.status.success());
}
Результат выполнения кода:
true