Attendre la fin d'un processus enfant

RustRustBeginner
Pratiquer maintenant

This tutorial is from open-source community. Access the source code

💡 Ce tutoriel est traduit par l'IA à partir de la version anglaise. Pour voir la version originale, vous pouvez cliquer ici

Introduction

Dans ce laboratoire, vous pouvez apprendre à attendre qu'un process::Child se termine en appelant Child::wait, qui renverra un process::ExitStatus.

Note : Si le laboratoire ne spécifie pas de nom de fichier, vous pouvez utiliser n'importe quel nom de fichier que vous voulez. Par exemple, vous pouvez utiliser main.rs, le compiler et l'exécuter avec rustc main.rs &&./main.


Skills Graph

%%%%{init: {'theme':'neutral'}}%%%% flowchart RL rust(("Rust")) -.-> rust/DataStructuresandEnumsGroup(["Data Structures and Enums"]) rust(("Rust")) -.-> rust/BasicConceptsGroup(["Basic Concepts"]) rust(("Rust")) -.-> rust/DataTypesGroup(["Data Types"]) rust(("Rust")) -.-> rust/FunctionsandClosuresGroup(["Functions and Closures"]) rust/BasicConceptsGroup -.-> rust/variable_declarations("Variable Declarations") rust/BasicConceptsGroup -.-> rust/mutable_variables("Mutable Variables") rust/DataTypesGroup -.-> rust/string_type("String Type") rust/FunctionsandClosuresGroup -.-> rust/function_syntax("Function Syntax") rust/FunctionsandClosuresGroup -.-> rust/expressions_statements("Expressions and Statements") rust/DataStructuresandEnumsGroup -.-> rust/method_syntax("Method Syntax") subgraph Lab Skills rust/variable_declarations -.-> lab-99276{{"Attendre la fin d'un processus enfant"}} rust/mutable_variables -.-> lab-99276{{"Attendre la fin d'un processus enfant"}} rust/string_type -.-> lab-99276{{"Attendre la fin d'un processus enfant"}} rust/function_syntax -.-> lab-99276{{"Attendre la fin d'un processus enfant"}} rust/expressions_statements -.-> lab-99276{{"Attendre la fin d'un processus enfant"}} rust/method_syntax -.-> lab-99276{{"Attendre la fin d'un processus enfant"}} end

Attendre

Si vous voulez attendre qu'un process::Child se termine, vous devez appeler Child::wait, qui renverra un process::ExitStatus.

use std::process::Command;

fn main() {
    let mut child = Command::new("sleep").arg("5").spawn().unwrap();
    let _result = child.wait().unwrap();

    println!("reached end of main");
}
$ rustc wait.rs && ./wait
## `wait` continue de s'exécuter pendant 5 secondes jusqu'à ce que la commande `sleep 5` se termine
reached end of main

Sommaire

Félicitations ! Vous avez terminé le laboratoire Attendre. Vous pouvez pratiquer d'autres laboratoires sur LabEx pour améliorer vos compétences.