當前位置: 首頁>>代碼示例 >>用法及示例精選 >>正文


Rust exit用法及代碼示例


本文簡要介紹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-lang.org大神的英文原創作品 Function std::process::exit。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。