Function std::process::exit1.0.0[][src]

pub fn exit(code: i32) -> !
Expand description

使用指定的退出代码终止当前进程。

该函数将永远不会返回,并会立即终止当前进程。退出代码将传递到底层操作系统,并且可供其他进程使用。

请注意,由于此函数从不返回,并且终止了该进程,因此将不运行当前栈或任何其他线程的栈上的析构函数。 如果需要彻底关闭,建议仅在没有更多析构函数可以运行的已知点上调用此函数。

平台特定的行为

Unix: 在类似 Unix 的平台上,检查父级退出代码的父进程不太可能看到 exit 的所有 32 位。 在大多数类 Unix 平台上,仅考虑八个最低有效位。

Examples

由于此函数的行为与析构函数有关,因此使用该函数的常规方法是将实际的计算提取到另一个函数,并从其返回值计算退出代码:

fn run_app() -> Result<(), ()> {
    // 这里的应用逻辑
    Ok(())
}

fn main() {
    std::process::exit(match run_app() {
        Ok(_) => 0,
        Err(err) => {
            eprintln!("error: {:?}", err);
            1
        }
    });
}
Run

由于 platform-specific behavior,此示例的退出代码将是 Linux 上的 0,但 Windows 上的 256:

use std::process;

process::exit(0x0100);
Run