Struct std::process::ExitStatus
pub struct ExitStatus(_);
Describes the result of a process after it has terminated.
This struct
is used to represent the exit status or other termination of a child process. Child processes are created via the Command
struct and their exit status is exposed through the status
method, or the wait
method of a Child
process.
An ExitStatus
represents every possible disposition of a process. On Unix this is the wait status. It is not simply an exit status (a value passed to exit
).
For proper error reporting of failed processes, print the value of ExitStatus
or ExitStatusError
using their implementations of Display
.
Implementations
impl ExitStatus
pub fn exit_ok(&self) -> Result<(), ExitStatusError>
Was termination successful? Returns a Result
.
Examples
#![feature(exit_status_error)] use std::process::Command; let status = Command::new("ls") .arg("/dev/nonexistent") .status() .expect("ls could not be executed"); println!("ls: {}", status); status.exit_ok().expect_err("/dev/nonexistent could be listed!");
pub fn success(&self) -> bool
Was termination successful? Signal termination is not considered a success, and success is defined as a zero exit status.
Examples
use std::process::Command; let status = Command::new("mkdir") .arg("projects") .status() .expect("failed to execute mkdir"); if status.success() { println!("'projects/' directory created"); } else { println!("failed to create 'projects/' directory: {}", status); }
pub fn code(&self) -> Option<i32>
Returns the exit code of the process, if any.
In Unix terms the return value is the exit status: the value passed to exit
, if the process finished by calling exit
. Note that on Unix the exit status is truncated to 8 bits, and that values that didn’t come from a program’s call to exit
may be invented by the runtime system (often, for example, 255, 254, 127 or 126).
On Unix, this will return None
if the process was terminated by a signal. ExitStatusExt
is an extension trait for extracting any such signal, and other details, from the ExitStatus
.
Examples
use std::process::Command; let status = Command::new("mkdir") .arg("projects") .status() .expect("failed to execute mkdir"); match status.code() { Some(code) => println!("Exited with status code: {}", code), None => println!("Process terminated by signal") }
Trait Implementations
impl Clone for ExitStatus
fn clone(&self) -> ExitStatus
Returns a copy of the value. Read more
fn clone_from(&mut self, source: &Self)
Performs copy-assignment from source
. Read more
impl Debug for ExitStatus
fn fmt(&self, f: &mut Formatter<'_>) -> Result
Formats the value using the given formatter. Read more
impl Display for ExitStatus
fn fmt(&self, f: &mut Formatter<'_>) -> Result
Formats the value using the given formatter. Read more
fn from_raw(raw: i32) -> Self
Creates a new ExitStatus
or ExitStatusError
from the raw underlying integer status value from wait
Read more
fn signal(&self) -> Option<i32>
If the process was terminated by a signal, returns that signal. Read more
fn core_dumped(&self) -> bool
If the process was terminated by a signal, says whether it dumped core.
fn stopped_signal(&self) -> Option<i32>
If the process was stopped by a signal, returns that signal. Read more
fn continued(&self) -> bool
Whether the process was continued from a stopped status. Read more
fn into_raw(self) -> i32
Returns the underlying raw wait
status. Read more
fn from_raw(raw: u32) -> Self
Creates a new ExitStatus
from the raw underlying u32
return value of a process. Read more
impl Into<ExitStatus> for ExitStatusError
fn into(self) -> ExitStatus
Performs the conversion.
impl PartialEq<ExitStatus> for ExitStatus
fn eq(&self, other: &ExitStatus) -> bool
This method tests for self
and other
values to be equal, and is used by ==
. Read more
fn ne(&self, other: &ExitStatus) -> bool
This method tests for !=
.
impl Copy for ExitStatus
impl Eq for ExitStatus
impl StructuralEq for ExitStatus
impl StructuralPartialEq for ExitStatus
Auto Trait Implementations
impl RefUnwindSafe for ExitStatus
impl Send for ExitStatus
impl Sync for ExitStatus
impl Unpin for ExitStatus
impl UnwindSafe for ExitStatus
Blanket Implementations
impl<T> From<T> for T
pub fn from(t: T) -> T
Performs the conversion.
pub fn into(self) -> U
Performs the conversion.
type Owned = T
The resulting type after obtaining ownership.
pub fn to_owned(&self) -> T
Creates owned data from borrowed data, usually by cloning. Read more
pub fn clone_into(&self, target: &mut T)
toowned_clone_into
#41263)recently added
Uses borrowed data to replace owned data, usually by cloning. Read more
type Error = Infallible
The type returned in the event of a conversion error.
pub fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>
Performs the conversion.
type Error = <U as TryFrom<T>>::Error
The type returned in the event of a conversion error.
pub fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>
Performs the conversion.
© 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/struct.ExitStatus.html