Introdução
Neste laboratório, aprendemos sobre processos filhos em Rust utilizando a estrutura process::Output para representar a saída de um processo filho concluído e a estrutura process::Command para construir processos. O código de exemplo demonstra como executar o comando rustc --version e lidar com a saída, verificando se o processo teve sucesso ou falhou.
Nota: Se o laboratório não especificar um nome de arquivo, você pode usar qualquer nome de arquivo que desejar. Por exemplo, você pode usar
main.rs, compilar e executar comrustc main.rs && ./main.
Processos Filhos
A estrutura process::Output representa a saída de um processo filho concluído, e a estrutura process::Command é um construtor de processos.
use std::process::Command;
fn main() {
let output = Command::new("rustc")
.arg("--version")
.output().unwrap_or_else(|e| {
panic!("falha ao executar o processo: {}", e)
});
if output.status.success() {
let s = String::from_utf8_lossy(&output.stdout);
print!("rustc teve sucesso e a saída padrão foi:\n{}", s);
} else {
let s = String::from_utf8_lossy(&output.stderr);
print!("rustc falhou e a saída de erro foi:\n{}", s);
}
}
(É recomendado tentar o exemplo anterior com um sinalizador incorreto passado para rustc)
Resumo
Parabéns! Você concluiu o laboratório de Processos Filhos. Você pode praticar mais laboratórios no LabEx para aprimorar suas habilidades.