Comment exécuter une commande système et capturer sa sortie en Rust ?
Bonjour, collègues !
J'ai commencé à apprendre Rust et j'écris un petit outil d'automatisation. J'ai besoin d'exécuter une commande système externe (par exemple, `ls -la` ou `git status`) et de lire sa sortie (stdout et stderr) directement dans le programme, afin de traiter les lignes ensuite.
J'ai consulté la documentation du module `std::process::Command`, mais je n'arrive pas à capturer correctement la sortie. Voici ce que j'ai essayé :
```rust
use std::process::Command;
fn main() {
let output = Command::new("ls")
.arg("-la")
.output()
.expect("Impossible d'exécuter la commande");
println!("stdout: {}", output.stdout);
println!("stderr: {}", output.stderr);
}
```
Mais la console affiche quelque chose comme `stdout: [115, 111, 109, 101, 32, 116, 101, 120, 116]` — ce sont des bytes, pas une chaîne ! Comment obtenir un texte lisible ? Et que faire si la commande peut se terminer avec une erreur ? Je veux comprendre comment gérer correctement le statut de sortie et comment capturer stderr séparément.
Merci d'avance pour votre aide.