本文简要介绍rust语言中 Function std::process::exit
的用法。
用法
pub fn exit(code: i32) -> !
使用指定的退出代码终止当前进程。
此函数将永远不会返回,并将立即终止当前进程。退出代码被传递到底层操作系统,并且可供另一个进程使用。
请注意,因为这个函数永远不会返回,并且它会终止进程,所以不会运行当前堆栈或任何其他线程的堆栈上的析构函数。如果需要彻底关闭,建议仅在没有更多析构函数可以运行的已知点调用此函数。
特定于平台的行为
Unix:在类 Unix 平台上,不太可能全部 32 位exit
对于检查退出代码的父进程来说是可见的。在大多数类 Unix 平台上,仅考虑八个最低有效位。
例子
由于此函数与析构函数有关的行为,使用该函数的常规方法是将实际计算提取到另一个函数并从其返回值计算退出代码:
fn run_app() -> Result<(), ()> {
// Application logic here
Ok(())
}
fn main() {
std::process::exit(match run_app() {
Ok(_) => 0,
Err(err) => {
eprintln!("error: {:?}", err);
1
}
});
}
由于平台特定的行为,此示例的退出代码在 Linux 上为 0
,但在 Windows 上为 256
:
use std::process;
process::exit(0x0100);
相关用法
- Rust eq用法及代码示例
- Rust eprintln用法及代码示例
- Rust escape_default用法及代码示例
- Rust empty用法及代码示例
- Rust env用法及代码示例
- Rust eprint用法及代码示例
- Rust UdpSocket.set_multicast_loop_v6用法及代码示例
- Rust i64.overflowing_add_unsigned用法及代码示例
- Rust Box.downcast用法及代码示例
- Rust BTreeMap.last_key_value用法及代码示例
- Rust str.make_ascii_uppercase用法及代码示例
- Rust u128.checked_pow用法及代码示例
- Rust usize.wrapping_mul用法及代码示例
- Rust AtomicU8.fetch_sub用法及代码示例
- Rust PanicInfo.payload用法及代码示例
- Rust MaybeUninit.assume_init_mut用法及代码示例
- Rust String.try_reserve用法及代码示例
- Rust Mutex.new用法及代码示例
- Rust f32.exp用法及代码示例
- Rust Result.unwrap_or_else用法及代码示例
- Rust slice.sort_unstable_by_key用法及代码示例
- Rust Formatter.precision用法及代码示例
- Rust i128.log2用法及代码示例
- Rust OsStr.to_ascii_uppercase用法及代码示例
- Rust f32.hypot用法及代码示例
注:本文由纯净天空筛选整理自rust-lang.org大神的英文原创作品 Function std::process::exit。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。