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

Метод stdin

Метод stdin класса Command настраивает стандартный поток ввода (stdin) для дочернего процесса. Параметром метод принимает значение типа Stdio, которое определяет, как будет обрабатываться ввод: наследоваться от родителя, быть перенаправленным в канал или игнорироваться. Метод возвращает изменяемую ссылку на Command, что позволяет использовать цепочку вызовов.

Синтаксис

command.stdin(cfg)

Пример

Давайте запустим команду cat и передадим ей строку через стандартный ввод, используя Stdio::piped:

use std::process::{Command, Stdio}; use std::io::Write; fn main() { let mut child = Command::new("cat") .stdin(Stdio::piped()) .stdout(Stdio::piped()) .spawn() .expect("failed to spawn"); { let stdin = child.stdin.as_mut().expect("failed to open stdin"); stdin.write_all(b"abcde").expect("failed to write"); } let output = child.wait_with_output().expect("failed to wait"); let res = String::from_utf8_lossy(&output.stdout); println!("{}", res); }

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

"abcde"

Пример

Давайте запретим ввод для дочернего процесса, используя Stdio::null:

use std::process::{Command, Stdio}; fn main() { let output = Command::new("cat") .stdin(Stdio::null()) .stdout(Stdio::piped()) .output() .expect("failed to execute"); let res = String::from_utf8_lossy(&output.stdout); println!("{:?}", res); }

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

""

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

  • класс Command,
    который представляет запускаемую команду
  • метод stdout,
    который настраивает стандартный вывод дочернего процесса
  • метод stderr,
    который настраивает стандартный поток ошибок дочернего процесса
  • тип Stdio,
    который описывает конфигурацию стандартных потоков
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить