Метод inherit
Метод inherit класса Stdio создает конфигурацию,
при которой дочерний процесс будет использовать те же
стандартные потоки (stdin, stdout, stderr), что и родительский
процесс. Это означает, что ввод и вывод дочернего процесса
напрямую связаны с терминалом или консолью родителя.
Метод не принимает параметров и возвращает значение типа
Stdio.
Синтаксис
Stdio::inherit()
Пример
Давайте создадим команду, которая выведет строку в стандартный поток вывода, используя наследование:
use std::process::{Command, Stdio};
fn main()
{
let output = Command::new("echo")
.arg("abcde")
.stdout(Stdio::inherit())
.output()
.expect("failed to execute process");
println!("status: {}", output.status);
}
Результат выполнения кода:
abcde
status: exit status: 0
Пример
Давайте продемонстрируем наследование стандартного потока вывода для команды, которая выводит несколько строк:
use std::process::{Command, Stdio};
fn main()
{
let status = Command::new("ls")
.arg("-la")
.stdout(Stdio::inherit())
.status()
.expect("failed to execute process");
println!("status: {}", status);
}
Результат выполнения кода:
total 8
drwxr-xr-x 2 user user 4096 Jan 1 00:00 .
drwxr-xr-x 10 user user 4096 Jan 1 00:00 ..
status: exit status: 0