Struct PipeWriter
pub struct PipeWriter(/* private fields */);Expand description
Write end of an anonymous pipe.
Implementations§
§impl PipeWriter
impl PipeWriter
1.87.0pub fn try_clone(&self) -> Result<PipeWriter, Error>
pub fn try_clone(&self) -> Result<PipeWriter, Error>
Creates a new PipeWriter instance that shares the same underlying file description.
§Examples
use std::process::Command;
use std::io::{pipe, Read};
let (mut reader, writer) = pipe()?;
// Spawn a process that writes to stdout and stderr.
let mut peer = Command::new("bash")
.args([
"-c",
"echo -n foo\n\
echo -n bar >&2"
])
.stdout(writer.try_clone()?)
.stderr(writer)
.spawn()?;
// Read and check the result.
let mut msg = String::new();
reader.read_to_string(&mut msg)?;
assert_eq!(&msg, "foobar");
peer.wait()?;Trait Implementations§
1.87.0§impl AsFd for PipeWriter
Available on non-target_os=trusty only.
impl AsFd for PipeWriter
Available on non-
target_os=trusty only.§fn as_fd(&self) -> BorrowedFd<'_>
fn as_fd(&self) -> BorrowedFd<'_>
Borrows the file descriptor. Read more
1.87.0§impl AsRawFd for PipeWriter
Available on non-target_os=trusty only.
impl AsRawFd for PipeWriter
Available on non-
target_os=trusty only.1.87.0§impl Debug for PipeWriter
impl Debug for PipeWriter
1.87.0§impl From<OwnedFd> for PipeWriter
Available on non-target_os=trusty only.
impl From<OwnedFd> for PipeWriter
Available on non-
target_os=trusty only.§fn from(owned_fd: OwnedFd) -> PipeWriter ⓘ
fn from(owned_fd: OwnedFd) -> PipeWriter ⓘ
Converts to this type from the input type.
1.87.0§impl FromRawFd for PipeWriter
Available on non-target_os=trusty only.
impl FromRawFd for PipeWriter
Available on non-
target_os=trusty only.§unsafe fn from_raw_fd(raw_fd: i32) -> PipeWriter ⓘ
unsafe fn from_raw_fd(raw_fd: i32) -> PipeWriter ⓘ
Constructs a new instance of
Self from the given raw file
descriptor. Read more1.87.0§impl IntoRawFd for PipeWriter
Available on non-target_os=trusty only.
impl IntoRawFd for PipeWriter
Available on non-
target_os=trusty only.§fn into_raw_fd(self) -> i32
fn into_raw_fd(self) -> i32
Consumes this object, returning the raw underlying file descriptor. Read more
1.87.0§impl Write for &PipeWriter
impl Write for &PipeWriter
§fn write(&mut self, buf: &[u8]) -> Result<usize, Error>
fn write(&mut self, buf: &[u8]) -> Result<usize, Error>
Writes a buffer into this writer, returning how many bytes were written. Read more
§fn flush(&mut self) -> Result<(), Error>
fn flush(&mut self) -> Result<(), Error>
Flushes this output stream, ensuring that all intermediately buffered
contents reach their destination. Read more
§fn is_write_vectored(&self) -> bool
fn is_write_vectored(&self) -> bool
🔬This is a nightly-only experimental API. (
can_vector)1.0.0§fn write_all(&mut self, buf: &[u8]) -> Result<(), Error>
fn write_all(&mut self, buf: &[u8]) -> Result<(), Error>
Attempts to write an entire buffer into this writer. Read more
§fn write_all_vectored(&mut self, bufs: &mut [IoSlice<'_>]) -> Result<(), Error>
fn write_all_vectored(&mut self, bufs: &mut [IoSlice<'_>]) -> Result<(), Error>
🔬This is a nightly-only experimental API. (
write_all_vectored)Attempts to write multiple buffers into this writer. Read more
1.87.0§impl Write for PipeWriter
impl Write for PipeWriter
§fn write(&mut self, buf: &[u8]) -> Result<usize, Error>
fn write(&mut self, buf: &[u8]) -> Result<usize, Error>
Writes a buffer into this writer, returning how many bytes were written. Read more
§fn flush(&mut self) -> Result<(), Error>
fn flush(&mut self) -> Result<(), Error>
Flushes this output stream, ensuring that all intermediately buffered
contents reach their destination. Read more
§fn is_write_vectored(&self) -> bool
fn is_write_vectored(&self) -> bool
🔬This is a nightly-only experimental API. (
can_vector)1.0.0§fn write_all(&mut self, buf: &[u8]) -> Result<(), Error>
fn write_all(&mut self, buf: &[u8]) -> Result<(), Error>
Attempts to write an entire buffer into this writer. Read more
§fn write_all_vectored(&mut self, bufs: &mut [IoSlice<'_>]) -> Result<(), Error>
fn write_all_vectored(&mut self, bufs: &mut [IoSlice<'_>]) -> Result<(), Error>
🔬This is a nightly-only experimental API. (
write_all_vectored)Attempts to write multiple buffers into this writer. Read more