subprocess::Exec? То есть, я запускаю дочерний процесс и направляю его вывод в stdout, но вместе с тем мне нужен анализ строк из этого вывода. Не пойму, как эти строки получить. Пытаюсь так:
let mut subprocess = Exec::cmd(bin_path)
.detached()
.stdout(Redirection::Pipe)
.popen()?;
if let Some(out) = &mut subprocess.stdout {
let mut reader = io::BufReader::new(out);
let mut line = String::new();
while reader.read_line(&mut line).is_ok() {
if line.contains("Needed") {
break;
}
}
}
Но выполнение зависает на read_line, при этом в stdout выводятся строки, в том числе и "Needed".
А если не read_line? Такое ощущение, словно не может найти конец строки. Нужно убедиться сначала, что stdout не пуст
Обсуждают сегодня