Trait std::os::unix::process::ExitStatusExt
pub trait ExitStatusExt: Sealed { fn from_raw(raw: i32) -> Self; fn signal(&self) -> Option<i32>; fn core_dumped(&self) -> bool; fn stopped_signal(&self) -> Option<i32>; fn continued(&self) -> bool; fn into_raw(self) -> i32; }
Unix-specific extensions to process::ExitStatus
and ExitStatusError
.
On Unix, ExitStatus
does not necessarily represent an exit status, as passed to the exit
system call or returned by ExitStatus::code()
. It represents any wait status as returned by one of the wait
family of system calls.
A Unix wait status (a Rust ExitStatus
) can represent a Unix exit status, but can also represent other kinds of process event.
This trait is sealed: it cannot be implemented outside the standard library. This is so that future additional methods are not breaking changes.
Required methods
fn from_raw(raw: i32) -> Self
Creates a new ExitStatus
or ExitStatusError
from the raw underlying integer status value from wait
The value should be a wait status, not an exit status.
Panics
Panics on an attempt to make an ExitStatusError
from a wait status of 0
.
Making an ExitStatus
always succeeds and never panics.
fn signal(&self) -> Option<i32>
If the process was terminated by a signal, returns that signal.
In other words, if WIFSIGNALED
, this returns WTERMSIG
.
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.
In other words, if WIFSTOPPED
, this returns WSTOPSIG
. This is only possible if the status came from a wait
system call which was passed WUNTRACED
, and was then converted into an ExitStatus
.
fn continued(&self) -> bool
Whether the process was continued from a stopped status.
Ie, WIFCONTINUED
. This is only possible if the status came from a wait
system call which was passed WCONTINUED
, and was then converted into an ExitStatus
.
fn into_raw(self) -> i32
Returns the underlying raw wait
status.
The returned integer is a wait status, not an exit status.
Implementors
© 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/os/unix/process/trait.ExitStatusExt.html