Rollup merge of #40122 - robinst:process-add-example-for-writing-to-stdin, r=alexcrichton
Example for how to provide stdin using std::process::Command Spawning a child process and writing to its stdin is a bit tricky due to `as_mut` and having to use a limited borrow. An example for this might help newer users. r? @steveklabnik
This commit is contained in:
commit
6ac7bf5c67
1 changed files with 25 additions and 0 deletions
|
@ -27,6 +27,31 @@
|
|||
//!
|
||||
//! assert!(ecode.success());
|
||||
//! ```
|
||||
//!
|
||||
//! Calling a command with input and reading its output:
|
||||
//!
|
||||
//! ```no_run
|
||||
//! 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());
|
||||
//! ```
|
||||
|
||||
#![stable(feature = "process", since = "1.0.0")]
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue