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

Метод status

Метод status запускает внешнюю команду, ожидает её завершения и возвращает результат в виде Result с типом ExitStatus. Этот метод удобен, когда нужно выполнить команду и узнать, успешно ли она завершилась, без получения её вывода. Параметров метод не принимает. Если команда не найдена или запуск невозможен, возвращается ошибка.

Синтаксис

command.status()

Пример

Давайте запустим команду echo и проверим, успешно ли она завершилась:

use std::process::Command; fn main() { let res = Command::new("echo") .arg("hello") .status(); match res { Ok(status) => { println!("Success: {}", status.success()); } Err(e) => { println!("Error: {}", e); } } }

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

Success: true

Пример

Давайте запустим команду, которой не существует, и обработаем ошибку:

use std::process::Command; fn main() { let res = Command::new("nonexistent_command_xyz") .status(); match res { Ok(status) => { println!("Success: {}", status.success()); } Err(e) => { println!("Error: {}", e); } } }

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

Error: No such file or directory (os error 2)

Пример

Давайте запустим команду false, которая всегда завершается с ненулевым кодом, и посмотрим на результат:

use std::process::Command; fn main() { let res = Command::new("false") .status(); match res { Ok(status) => { println!("Success: {}", status.success()); println!("Code: {:?}", status.code()); } Err(e) => { println!("Error: {}", e); } } }

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

Success: false Code: Some(1)

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

  • метод output,
    который запускает команду и возвращает её вывод
  • метод spawn,
    который запускает команду без ожидания завершения
  • метод arg,
    который добавляет аргумент к команде
  • структура ExitStatus,
    которая представляет статус завершения процесса
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить