pubstructStdio(_);

Describe qué hacer con un flujo de E / S estándar para un proceso hijo cuando se pasa al stdin, stdout, y stderr métodos de Command.

Implementaciones

impl Stdio[src]

pub fn piped() -> Stdio[src]

Debe disponerse una nueva tubería para conectar los procesos padre e hijo.

Ejemplos de

Con stdout:

usestd::process::Command,Stdio;let output =Command::new("echo").arg("Hello, world!").stdout(Stdio::piped()).output().expect("Failed to execute command");assert_eq!(String::from_utf8_lossy(&output.stdout),"Hello, world!n");// Nothing echoed to console

Con stdin:

usestd::io::Write;usestd::process::Command,Stdio;letmut child =Command::new("rev").stdin(Stdio::piped()).stdout(Stdio::piped()).spawn().expect("Failed to spawn child process");letmut stdin = child.stdin.take().expect("Failed to open stdin");std::thread::spawn(move||
    stdin.write_all("Hello, world!".as_bytes()).expect("Failed to write to stdin"););let output = child.wait_with_output().expect("Failed to read stdout");assert_eq!(String::from_utf8_lossy(&output.stdout),"!dlrow ,olleH");

Escribir más del valor de entrada de un búfer de tubería en stdin sin leer también stdout y stderr al mismo tiempo puede causar un interbloqueo. Este es un problema cuando se ejecuta cualquier programa que no garantiza que lea su stdin completo antes de escribir más que el valor de salida de un búfer de tubería. El tamaño de un búfer de tubería varía en diferentes objetivos.

pub fn inherit() -> Stdio[src]

El hijo hereda del descriptor padre correspondiente.

Ejemplos de

Con stdout:

usestd::process::Command,Stdio;let output =Command::new("echo").arg("Hello, world!").stdout(Stdio::inherit()).output().expect("Failed to execute command");assert_eq!(String::from_utf8_lossy(&output.stdout),"");// "Hello, world!" echoed to console

Con stdin:

usestd::process::Command,Stdio;usestd::io::self,Write;let output =Command::new("rev").stdin(Stdio::inherit()).stdout(Stdio::piped()).output().expect("Failed to execute command");print!("You piped in the reverse of: ");io::stdout().write_all(&output.stdout).unwrap();

pub fn null() -> Stdio[src]

Esta secuencia se ignorará. Esto es el equivalente a adjuntar la secuencia a /dev/null.

Ejemplos de

Con stdout:

usestd::process::Command,Stdio;let output =Command::new("echo").arg("Hello, world!").stdout(Stdio::null()).output().expect("Failed to execute command");assert_eq!(String::from_utf8_lossy(&output.stdout),"");// Nothing echoed to console

Con stdin:

usestd::process::Command,Stdio;let output =Command::new("rev").stdin(Stdio::null()).stdout(Stdio::piped()).output().expect("Failed to execute command");assert_eq!(String::from_utf8_lossy(&output.stdout),"");// Ignores any piped-in input

Implementaciones de rasgos

impl Debug for Stdio[src]1.16.0

fn fmt(&self, f: &mut Formatter<'_>) -> Result[src]

Formatea el valor usando el formateador dado. Lee mas

impl From<ChildStderr> for Stdio[src]1.20.0

fn from(child: ChildStderr) -> Stdio[src]

Convierte un ChildStderr en un Stdio

Ejemplos de

usestd::process::Command,Stdio;let reverse =Command::new("rev").arg("non_existing_file.txt").stderr(Stdio::piped()).spawn().expect("failed reverse command");let cat =Command::new("cat").arg("-").stdin(reverse.stderr.unwrap())// Converted into a Stdio here.output().expect("failed echo command");assert_eq!(String::from_utf8_lossy(&cat.stdout),"rev: cannot open non_existing_file.txt: No such file or directoryn");

impl From<ChildStdin> for Stdio[src]1.20.0

fn from(child: ChildStdin) -> Stdio[src]

Convierte un ChildStdin en un Stdio

Ejemplos de

ChildStdin será convertido a Stdio utilizando Stdio::from bajo el capó.

usestd::process::Command,Stdio;let reverse =Command::new("rev").stdin(Stdio::piped()).spawn().expect("failed reverse command");let _echo =Command::new("echo").arg("Hello, world!").stdout(reverse.stdin.unwrap())// Converted into a Stdio here.output().expect("failed echo command");// "!dlrow ,olleH" echoed to console

impl From<ChildStdout> for Stdio[src]1.20.0

fn from(child: ChildStdout) -> Stdio[src]

Convierte un ChildStdout en un Stdio

Ejemplos de

ChildStdout será convertido a Stdio utilizando Stdio::from bajo el capó.

usestd::process::Command,Stdio;let hello =Command::new("echo").arg("Hello, world!").stdout(Stdio::piped()).spawn().expect("failed echo command");let reverse =Command::new("rev").stdin(hello.stdout.unwrap())// Converted into a Stdio here.output().expect("failed reverse command");assert_eq!(reverse.stdout,b"!dlrow ,olleHn");

impl From<File> for Stdio[src]1.20.0

fn from(file: File) -> Stdio[src]

Convierte un File en un Stdio

Ejemplos de

File será convertido a Stdio utilizando Stdio::from bajo el capó.

usestd::fs::File;usestd::process::Command;// With the `foo.txt` file containing `Hello, world!"let file =File::open("foo.txt").unwrap();let reverse =Command::new("rev").stdin(file)// Implicit File conversion into a Stdio.output().expect("failed reverse command");assert_eq!(reverse.stdout,b"!dlrow ,olleH");

impl FromRawFd for Stdio[src]1.2.0

Esto es compatible con Unix solamente.

unsafe fn from_raw_fd(fd: RawFd) -> Stdio[src]

Construye una nueva instancia de Self desde el descriptor de archivo sin formato proporcionado. Lee mas

impl FromRawHandle for Stdio[src]1.2.0

Esto es compatible con Ventanas solamente.

unsafe fn from_raw_handle(handle: RawHandle) -> Stdio[src]

Construye un nuevo objeto de E / S a partir del identificador sin formato especificado. Lee mas

Implementaciones de rasgos automáticos

impl RefUnwindSafe for Stdio

impl Send for Stdio

impl Sync for Stdio

impl Unpin for Stdio

impl UnwindSafe for Stdio

Implementaciones generales

impl Any for T where
    T: 'static + ?Sized
[src]

pub fn type_id(&self) -> TypeId[src]

Obtiene el TypeId de self. Lee mas

impl Borrow for T where
    T: ?Sized
[src]

pub fn borrow(&self) -> &T[src]

Rasgos notables de & ‘_ mut F

impl<'_, F> Future for &'_ mut F where
    F: Future + Unpin + ?Sized, 
    type Output = ::Output;
impl<'_, I> Iterator for &'_ mut I where
    I: Iterator + ?Sized, 
    type Item = ::Item;
impl Read for &mut R
impl Write for &mut W

Inmutablemente toma prestado de un valor propio. Lee mas

impl BorrowMut for T where
    T: ?Sized
[src]

pub fn borrow_mut(&mut self) -> &mut T[src]

Rasgos notables de & ‘_ mut F

impl<'_, F> Future for &'_ mut F where
    F: Future + Unpin + ?Sized, 
    type Output = ::Output;
impl<'_, I> Iterator for &'_ mut I where
    I: Iterator + ?Sized, 
    type Item = ::Item;
impl Read for &mut R
impl Write for &mut W

Toma prestado de forma variable de un valor propio. Lee mas

impl From for T[src]

pub fn from(t: T) -> T[src]

Realiza la conversión.

impl Into for T where
    U: From
[src]

pub fn into(self) -> U[src]

Realiza la conversión.

impl TryFrom for T where
    U: Into
[src]

type Error = Infallible

El tipo devuelto en caso de error de conversión.

pub fn try_from(value: U) -> ResultTryFrom>::Error>[src]

Realiza la conversión.

impl TryInto for T where
    U: TryFrom
[src]

type Error = TryFrom>::Error

El tipo devuelto en caso de error de conversión.

pub fn try_into(self) -> ResultTryFrom>::Error>[src]

Realiza la conversión.