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

Метод stderr

Метод stderr используется для настройки стандартного потока ошибок (stderr) дочернего процесса. Он позволяет указать, как должен обрабатываться вывод ошибок запускаемой программы. Параметром метод принимает значение типа Stdio, которое определяет способ обработки потока.

Синтаксис

Command::new(program).stderr(stdio)

Пример

Давайте запустим команду ls и перенаправим её поток ошибок в тот же канал, что и стандартный вывод:

use std::process::{Command, Stdio}; fn main() { let output = Command::new("ls") .stderr(Stdio::piped()) .output() .expect("failed to execute process"); println!("status: {}", output.status); println!("stderr: {}", String::from_utf8_lossy(&output.stderr)); }

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

status: exit status: 0 stderr: ""

Пример

Давайте запустим команду, которая гарантированно выдаст ошибку, и перехватим её поток ошибок:

use std::process::{Command, Stdio}; fn main() { let output = Command::new("ls") .arg("/nonexistent_path_xyz") .stderr(Stdio::piped()) .output() .expect("failed to execute process"); println!("status: {}", output.status); println!("stderr: {}", String::from_utf8_lossy(&output.stderr)); }

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

status: exit status: 2 stderr: "ls: cannot access '/nonexistent_path_xyz': No such file or directory\n"

Пример

Давайте подавим поток ошибок, перенаправив его в Stdio::null:

use std::process::{Command, Stdio}; fn main() { let output = Command::new("ls") .arg("/nonexistent_path_xyz") .stderr(Stdio::null()) .output() .expect("failed to execute process"); println!("status: {}", output.status); println!("stderr: {:?}", String::from_utf8_lossy(&output.stderr)); }

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

status: exit status: 2 stderr: ""

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

  • метод stdout,
    который настраивает стандартный поток вывода
  • метод stdin,
    который настраивает стандартный поток ввода
  • метод output,
    который запускает процесс и возвращает его вывод
  • метод piped,
    который создает новый канал для потока ввода-вывода
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить