Ejecución de Procesos Hijos en Rust

RustRustBeginner
Practicar Ahora

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

💡 Este tutorial está traducido por IA desde la versión en inglés. Para ver la versión original, puedes hacer clic aquí

Introducción

En este laboratorio, aprendemos sobre los procesos hijos en Rust utilizando la estructura process::Output para representar la salida de un proceso hijo finalizado y la estructura process::Command para construir procesos. El código de ejemplo demuestra cómo ejecutar el comando rustc --version y manejar la salida comprobando si el proceso tuvo éxito o fracasó.

Nota: Si el laboratorio no especifica un nombre de archivo, puede utilizar cualquier nombre de archivo que desee. Por ejemplo, puede utilizar main.rs, compilar y ejecutarlo con rustc main.rs &&./main.


Skills Graph

%%%%{init: {'theme':'neutral'}}%%%% flowchart RL rust(("Rust")) -.-> rust/DataTypesGroup(["Data Types"]) rust(("Rust")) -.-> rust/FunctionsandClosuresGroup(["Functions and Closures"]) rust(("Rust")) -.-> rust/DataStructuresandEnumsGroup(["Data Structures and Enums"]) rust(("Rust")) -.-> rust/ErrorHandlingandDebuggingGroup(["Error Handling and Debugging"]) rust(("Rust")) -.-> rust/BasicConceptsGroup(["Basic Concepts"]) rust/BasicConceptsGroup -.-> rust/variable_declarations("Variable Declarations") 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") rust/ErrorHandlingandDebuggingGroup -.-> rust/panic_usage("panic! Usage") subgraph Lab Skills rust/variable_declarations -.-> lab-99273{{"Ejecución de Procesos Hijos en Rust"}} rust/string_type -.-> lab-99273{{"Ejecución de Procesos Hijos en Rust"}} rust/function_syntax -.-> lab-99273{{"Ejecución de Procesos Hijos en Rust"}} rust/expressions_statements -.-> lab-99273{{"Ejecución de Procesos Hijos en Rust"}} rust/method_syntax -.-> lab-99273{{"Ejecución de Procesos Hijos en Rust"}} rust/panic_usage -.-> lab-99273{{"Ejecución de Procesos Hijos en Rust"}} end

Procesos hijos

La estructura process::Output representa la salida de un proceso hijo finalizado, y la estructura process::Command es un constructor de procesos.

use std::process::Command;

fn main() {
    let output = Command::new("rustc")
     .arg("--version")
     .output().unwrap_or_else(|e| {
            panic!("failed to execute process: {}", e)
    });

    if output.status.success() {
        let s = String::from_utf8_lossy(&output.stdout);

        print!("rustc succeeded and stdout was:\n{}", s);
    } else {
        let s = String::from_utf8_lossy(&output.stderr);

        print!("rustc failed and stderr was:\n{}", s);
    }
}

(Se le anima a probar el ejemplo anterior con una bandera incorrecta pasada a rustc)

Resumen

¡Felicitaciones! Has completado el laboratorio de Procesos Hijos. Puedes practicar más laboratorios en LabEx para mejorar tus habilidades.