Struct std::process::ExitStatus
1.0.0 · source · pub struct ExitStatus(_);
Expand description
描述进程终止后的结果。
struct
用于表示子进程的退出状态或其他终止。
子进程是通过 Command
结构体创建的,其退出状态通过 status
方法或 Child
进程的 wait
方法公开。
ExitStatus
表示进程的每一种可能的配置。在 Unix 上,这是等待状态。不是 仅仅是 exit 状态(传递给 exit
的值)。
为了正确报告失败进程的错误,请使用 Display
的实现打印 ExitStatus
或 ExitStatusError
的值。
与 ExitCode
的区别
ExitCode
旨在通过 Termination
trait 终止当前正在运行的进程,而 ExitStatus
则表示终止子进程。
由于平台兼容性差异及其预期用途,这些 API 是分开的; 事后通常不可能从子节点那里准确地复制当前进程的 ExitStatus
。
Implementations§
source§impl ExitStatus
impl ExitStatus
sourcepub fn exit_ok(&self) -> Result<(), ExitStatusError>
🔬This is a nightly-only experimental API. (exit_status_error
#84908)
pub fn exit_ok(&self) -> Result<(), ExitStatusError>
exit_status_error
#84908)sourcepub fn success(&self) -> bool
pub fn success(&self) -> bool
终止成功了吗? 信号终止不被视为成功,并且成功被定义为零退出状态。
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}");
}
Runsourcepub fn code(&self) -> Option<i32>
pub fn code(&self) -> Option<i32>
返回进程的退出代码 (如果有)。
用 Unix 的术语来说,返回值是退出状态:如果进程通过调用 exit
完成,则传递给 exit
的值。
请注意,在 Unix 上,退出状态被截断为 8 位,并且不是来自程序调用到 exit
的值可能是由运行时系统发明的 (通常,例如,255、254、127 或 126)。
在 Unix 上,如果进程被信号终止,它将返回 None
。
ExitStatusExt
是 trait 的扩展,用于从 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§
source§impl Clone for ExitStatus
impl Clone for ExitStatus
source§fn clone(&self) -> ExitStatus
fn clone(&self) -> ExitStatus
返回值的副本。 Read more
source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
从
source
执行复制分配。 Read moresource§impl Debug for ExitStatus
impl Debug for ExitStatus
source§impl Display for ExitStatus
impl Display for ExitStatus
source§impl ExitStatusExt for ExitStatus
Available on Unix only.
impl ExitStatusExt for ExitStatus
Available on Unix only.
source§fn core_dumped(&self) -> bool
fn core_dumped(&self) -> bool
如果进程被一个信号终止,说明它是否丢弃了核心。
1.12.0 · source§impl ExitStatusExt for ExitStatus
Available on Windows only.
impl ExitStatusExt for ExitStatus
Available on Windows only.
source§impl Into<ExitStatus> for ExitStatusError
impl Into<ExitStatus> for ExitStatusError
source§fn into(self) -> ExitStatus
fn into(self) -> ExitStatus
将此类型转换为 (通常是推断的) 输入类型。
source§impl PartialEq<ExitStatus> for ExitStatus
impl PartialEq<ExitStatus> for ExitStatus
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§
source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere T: ?Sized,
source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
从拥有的值中借用。 Read more