std::process

Module std::process

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());

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());

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. This struct is used in the stdin field on Child.

ChildStdout

A handle to a child process's stdout. This struct is used in the stdout field on Child.

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.

© 2010 The Rust Project Developers
Licensed under the Apache License, Version 2.0 or the MIT license, at your option.
https://doc.rust-lang.org/std/process/index.html

在线笔记
App下载
App下载

扫描二维码

下载编程狮App

公众号
微信公众号

编程狮公众号

意见反馈
返回顶部