РЕПЕТИТОР математика физика информатика
Для школьников и студентов. Подтягивание пробелов. ЦЭ, ЦТ, ОГЭ, ЕГЭ.
Идет набор на ЛЕТО. Жмите для подробностей:)
1002 of 1245 menu

Класс Child

Класс Child представляет собой дескриптор дочернего процесса, который был запущен с помощью Command. Он предоставляет методы для взаимодействия с запущенным процессом: ожидание завершения, получение кода выхода, принудительное завершение, а также доступ к идентификатору процесса. Объект Child создается при вызове метода spawn у команды.

Синтаксис

let child: Child = command.spawn()?;

Пример

Давайте запустим дочерний процесс и дождемся его завершения с помощью метода wait:

use std::process::Command; fn main() { let mut child = Command::new("echo") .arg("hello") .spawn() .expect("failed to spawn"); let status = child.wait() .expect("failed to wait"); println!("{}", status.success()); }

Результат выполнения кода:

true

Пример

Давайте запустим дочерний процесс и получим его вывод с помощью метода wait_with_output:

use std::process::Command; fn main() { let child = Command::new("echo") .arg("abcde") .stdout(std::process::Stdio::piped()) .spawn() .expect("failed to spawn"); let output = child.wait_with_output() .expect("failed to wait"); let text = String::from_utf8(output.stdout) .expect("invalid utf-8"); println!("{}", text.trim()); }

Результат выполнения кода:

"abcde"

Пример

Давайте запустим долгий процесс и принудительно завершим его с помощью метода kill:

use std::process::Command; fn main() { let mut child = Command::new("sleep") .arg("10") .spawn() .expect("failed to spawn"); child.kill().expect("failed to kill"); let status = child.wait() .expect("failed to wait"); println!("{}", status.success()); }

Результат выполнения кода:

false

Смотрите также

  • метод wait,
    который ожидает завершения дочернего процесса
  • метод wait_with_output,
    который ожидает завершения и возвращает вывод процесса
  • метод kill,
    который принудительно завершает дочерний процесс
  • метод id,
    который возвращает идентификатор дочернего процесса
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить