Module std::process1.0.0 [] [src]

A module for working with processes.

Examples

Basic usage where we try to execute the cat shell command:

use std::process::Command;

let mut child = Command::new("/bin/cat")
                        .arg("file.txt")
                        .spawn()
                        .expect("failed to execute child");

let ecode = child.wait()
                 .expect("failed to wait on child");

assert!(ecode.success());Run

Calling a command with input and reading its output:

use std::process::{Command, Stdio};
use std::io::Write;

let mut child = Command::new("/bin/cat")
    .stdin(Stdio::piped())
    .stdout(Stdio::piped())
    .spawn()
    .expect("failed to execute child");

{
    // limited borrow of stdin
    let stdin = child.stdin.as_mut().expect("failed to get stdin");
    stdin.write_all(b"test").expect("failed to write to stdin");
}

let output = child
    .wait_with_output()
    .expect("failed to wait on child");

assert_eq!(b"test", output.stdout.as_slice());Run

Structs

Child

Representation of a running or exited child process.

ChildStderr

A handle to a child process's stderr.

ChildStdin

A handle to a child process's stdin.

ChildStdout

A handle to a child process's stdout.

Command

A process builder, providing fine-grained control over how a new process should be spawned.

ExitStatus

Describes the result of a process after it has terminated.

Output

The output of a finished process.

Stdio

Describes what to do with a standard I/O stream for a child process.

Functions

abort

Terminates the process in an abnormal fashion.

exit

Terminates the current process with the specified exit code.