Skip to main content

Stderr

Struct Stderr 

1.0.0 · Source
pub struct Stderr { /* private fields */ }
Expand description

A handle to the standard error stream of a process.

For more information, see the io::stderr method.

§Note: Windows Portability Considerations

When operating in a console, the Windows implementation of this stream does not support non-UTF-8 byte sequences. Attempting to write bytes that are not valid UTF-8 will return an error.

In a process with a detached console, such as one using #![windows_subsystem = "windows"], or in a child process spawned from such a process, the contained handle will be null. In such cases, the standard library’s Read and Write will do nothing and silently succeed. All other I/O operations, via the standard library or via raw Windows API calls, will fail.

Implementations§

Source§

impl Stderr

1.0.0 · Source

pub fn lock(&self) -> StderrLock<'static>

Locks this handle to the standard error stream, returning a writable guard.

The lock is released when the returned lock goes out of scope. The returned guard also implements the Write trait for writing data.

§Examples
use std::io::{self, Write};

fn foo() -> io::Result<()> {
    let stderr = io::stderr();
    let mut handle = stderr.lock();

    handle.write_all(b"hello world")?;

    Ok(())
}

Trait Implementations§

1.63.0 · Source§

impl AsFd for Stderr

Available on Hermit or Motor OS or Trusty or Unix or WASI only.
Source§

fn as_fd(&self) -> BorrowedFd<'_>

This item is validated for IEC 61508 (SIL 2) and ISO 26262 (ASIL B).
Borrows the file descriptor. Read more
1.63.0 · Source§

impl AsHandle for Stderr

Available on Windows only.
Source§

fn as_handle(&self) -> BorrowedHandle<'_>

This item is validated for IEC 61508 (SIL 2) and ISO 26262 (ASIL B).
Borrows the handle. Read more
1.21.0 · Source§

impl AsRawFd for Stderr

Available on Hermit or Motor OS or Trusty or Unix or WASI only.
Source§

fn as_raw_fd(&self) -> RawFd

This item is validated for IEC 61508 (SIL 2) and ISO 26262 (ASIL B).
Extracts the raw file descriptor. Read more
1.21.0 · Source§

impl AsRawHandle for Stderr

Available on Windows only.
Source§

fn as_raw_handle(&self) -> RawHandle

This item is validated for IEC 61508 (SIL 2) and ISO 26262 (ASIL B).
Extracts the raw handle. Read more
1.16.0 · Source§

impl Debug for Stderr

Source§

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

Formats the value using the given formatter. Read more
1.74.0 · Source§

impl From<Stderr> for Stdio

Source§

fn from(inherit: Stderr) -> Stdio

Redirect command stdout/stderr to our stderr

§Examples
#![feature(exit_status_error)]
use std::io;
use std::process::Command;

let output = Command::new("whoami")
    .stdout(io::stderr())
    .output()?;
output.status.exit_ok()?;
assert!(output.stdout.is_empty());
1.70.0 · Source§

impl IsTerminal for Stderr

Source§

fn is_terminal(&self) -> bool

This item is validated for IEC 61508 (SIL 2) and ISO 26262 (ASIL B).
Returns true if the descriptor/handle refers to a terminal/tty. Read more
1.9.0 · Source§

impl RefUnwindSafe for Stderr

Source§

impl StdioExt for Stderr

Available on Unix only.
Source§

fn set_fd<T: Into<OwnedFd>>(&mut self, fd: T) -> Result<()>

🔬This is a nightly-only experimental API. (stdio_swap #150667)
This item is validated for IEC 61508 (SIL 2) and ISO 26262 (ASIL B).
Redirects the stdio file descriptor to point to the file description underpinning fd. Read more
Source§

fn take_fd(&mut self) -> Result<OwnedFd>

🔬This is a nightly-only experimental API. (stdio_swap #150667)
This item is validated for IEC 61508 (SIL 2) and ISO 26262 (ASIL B).
Redirects the stdio file descriptor to the null device (/dev/null) and returns a new OwnedFd backed by the previous file description. Read more
Source§

fn replace_fd<T: Into<OwnedFd>>(&mut self, replace_with: T) -> Result<OwnedFd>

🔬This is a nightly-only experimental API. (stdio_swap #150667)
This item is validated for IEC 61508 (SIL 2) and ISO 26262 (ASIL B).
Redirects the stdio file descriptor and returns a new OwnedFd backed by the previous file description. Read more
1.9.0 · Source§

impl UnwindSafe for Stderr

1.0.0 · Source§

impl Write for Stderr

Source§

fn write(&mut self, buf: &[u8]) -> Result<usize>

This item is validated for IEC 61508 (SIL 2) and ISO 26262 (ASIL B).
Writes a buffer into this writer, returning how many bytes were written. Read more
Source§

fn write_vectored(&mut self, bufs: &[IoSlice<'_>]) -> Result<usize>

Like write, except that it writes from a slice of buffers. Read more
Source§

fn is_write_vectored(&self) -> bool

🔬This is a nightly-only experimental API. (can_vector #69941)
Determines if this Writer has an efficient write_vectored implementation. Read more
Source§

fn flush(&mut self) -> Result<()>

This item is validated for IEC 61508 (SIL 2) and ISO 26262 (ASIL B).
Flushes this output stream, ensuring that all intermediately buffered contents reach their destination. Read more
Source§

fn write_all(&mut self, buf: &[u8]) -> Result<()>

Attempts to write an entire buffer into this writer. Read more
Source§

fn write_all_vectored(&mut self, bufs: &mut [IoSlice<'_>]) -> Result<()>

🔬This is a nightly-only experimental API. (write_all_vectored #70436)
Attempts to write multiple buffers into this writer. Read more
Source§

fn write_fmt(&mut self, args: Arguments<'_>) -> Result<()>

Writes a formatted string into this writer, returning any error encountered. Read more
1.0.0 · Source§

fn by_ref(&mut self) -> &mut Self
where Self: Sized,

Creates a “by reference” adapter for this instance of Write. Read more
1.48.0 · Source§

impl Write for &Stderr

Source§

fn write(&mut self, buf: &[u8]) -> Result<usize>

This item is validated for IEC 61508 (SIL 2) and ISO 26262 (ASIL B).
Writes a buffer into this writer, returning how many bytes were written. Read more
Source§

fn write_vectored(&mut self, bufs: &[IoSlice<'_>]) -> Result<usize>

Like write, except that it writes from a slice of buffers. Read more
Source§

fn is_write_vectored(&self) -> bool

🔬This is a nightly-only experimental API. (can_vector #69941)
Determines if this Writer has an efficient write_vectored implementation. Read more
Source§

fn flush(&mut self) -> Result<()>

This item is validated for IEC 61508 (SIL 2) and ISO 26262 (ASIL B).
Flushes this output stream, ensuring that all intermediately buffered contents reach their destination. Read more
Source§

fn write_all(&mut self, buf: &[u8]) -> Result<()>

Attempts to write an entire buffer into this writer. Read more
Source§

fn write_all_vectored(&mut self, bufs: &mut [IoSlice<'_>]) -> Result<()>

🔬This is a nightly-only experimental API. (write_all_vectored #70436)
Attempts to write multiple buffers into this writer. Read more
Source§

fn write_fmt(&mut self, args: Arguments<'_>) -> Result<()>

Writes a formatted string into this writer, returning any error encountered. Read more
1.0.0 · Source§

fn by_ref(&mut self) -> &mut Self
where Self: Sized,

Creates a “by reference” adapter for this instance of Write. Read more

Auto Trait Implementations§

§

impl Freeze for Stderr

§

impl Send for Stderr

§

impl Sync for Stderr

§

impl Unpin for Stderr

§

impl UnsafeUnpin for Stderr

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = Infallible

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.