本文簡要介紹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。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。