Struct std::process::ExitStatus
1.0.0 · source · [−]pub struct ExitStatus(_);Expand description
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.
Differences from ExitStatus
ExitCode is intended for terminating the currently running process, via
the Termination trait, in contrast to ExitStatus, which represents the
termination of a child process. These APIs are separate due to platform
compatibility differences and their expected usage; it is not generally
possible to exactly reproduce an ExitStatus from a child for the current
process after the fact.
Implementations
impl ExitStatus
source
impl ExitStatus
sourcepub fn exit_ok(&self) -> Result<(), ExitStatusError>
source
pub fn exit_ok(&self) -> Result<(), ExitStatusError>
sourceWas 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!");Runpub fn success(&self) -> bool
source
pub fn success(&self) -> bool
sourceWas 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}");
}Runpub fn code(&self) -> Option<i32>
source
pub fn code(&self) -> Option<i32>
sourceReturns 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")
}RunTrait Implementations
impl Clone for ExitStatus
source
impl Clone for ExitStatus
sourcefn clone(&self) -> ExitStatus
source
fn clone(&self) -> ExitStatus
sourceReturns a copy of the value. Read more
fn clone_from(&mut self, source: &Self)
source
fn clone_from(&mut self, source: &Self)
sourcePerforms copy-assignment from source. Read more
impl Debug for ExitStatus
source
impl Debug for ExitStatus
sourceimpl Display for ExitStatus
source
impl Display for ExitStatus
sourceimpl ExitStatusExt for ExitStatus
source Available on Unix only.
impl ExitStatusExt for ExitStatus
sourcefn from_raw(raw: i32) -> Self
source
fn from_raw(raw: i32) -> Self
sourceCreates a new ExitStatus or ExitStatusError from the raw underlying integer status
value from wait Read more
fn signal(&self) -> Option<i32>
source
fn signal(&self) -> Option<i32>
sourceIf the process was terminated by a signal, returns that signal. Read more
fn core_dumped(&self) -> bool
source
fn core_dumped(&self) -> bool
sourceIf the process was terminated by a signal, says whether it dumped core.
fn stopped_signal(&self) -> Option<i32>
source
fn stopped_signal(&self) -> Option<i32>
sourceIf the process was stopped by a signal, returns that signal. Read more
impl ExitStatusExt for ExitStatus
1.12.0 · source Available on Windows only.
impl ExitStatusExt for ExitStatus
1.12.0 · sourceimpl Into<ExitStatus> for ExitStatusError
source
impl Into<ExitStatus> for ExitStatusError
sourcefn into(self) -> ExitStatus
source
fn into(self) -> ExitStatus
sourceConverts this type into the (usually inferred) input type.
impl PartialEq<ExitStatus> for ExitStatus
source
impl PartialEq<ExitStatus> for ExitStatus
sourcefn eq(&self, other: &ExitStatus) -> bool
source
fn eq(&self, other: &ExitStatus) -> bool
sourceThis method tests for self and other values to be equal, and is used
by ==. Read more
fn ne(&self, other: &ExitStatus) -> bool
source
fn ne(&self, other: &ExitStatus) -> bool
sourceThis method tests for !=.
impl Copy for ExitStatus
sourceimpl Eq for ExitStatus
sourceimpl StructuralEq for ExitStatus
sourceimpl StructuralPartialEq for ExitStatus
sourceAuto 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> BorrowMut<T> for T where
T: ?Sized,
source
impl<T> BorrowMut<T> for T where
T: ?Sized,
sourcefn borrow_mut(&mut self) -> &mut T
const: unstable · source
fn borrow_mut(&mut self) -> &mut T
const: unstable · sourceMutably borrows from an owned value. Read more
impl<T> ToOwned for T where
T: Clone,
source
impl<T> ToOwned for T where
T: Clone,
sourcetype Owned = T
type Owned = T
The resulting type after obtaining ownership.
fn clone_into(&self, target: &mut T)
source
fn clone_into(&self, target: &mut T)
sourceUses borrowed data to replace owned data, usually by cloning. Read more