在Rust 1.0中有没有返回退出代码的方法?

我try 了env::set_exit_status(exit_code);次,但这会产生一个编译器错误.

还有一个问题:Exit Rust program early,这是类似的,但询问的情况下,该进程必须提前退出.


EDIT: I'm looking for a solution that will also allow the process to tidy up the stack, call destructors, etc.

推荐答案

@FrancisGagné 's answer条注释的基础上构建,如果您正在搜索与C's return exit_code等效的注释,可以通过以下方式人工构建:

fn main() {
    let exit_code = real_main();
    std::process::exit(exit_code);
}

fn real_main() -> i32 {
    // the real program here
}

这样,程序的所有对象都将在real_main()函数的范围内,您可以安全地使用main中的return exit_code;,同时仍能正确运行所有析构函数.

Rust相关问答推荐

有条件默认实现

包含嵌套 struct 的CSV

从Rust调用C++虚拟方法即使在成功执行之后也会引发Access违规错误

有没有更好的方法从HashMap的条目初始化 struct ?

有没有办法指定只在Rust的测试中有效的断言?

如何在递归数据 struct 中移动所有权时变异引用?

在本例中,为什么我不能一次多次borrow 可变变量?

如何在函数中返回自定义字符串引用?

为什么`tokio::main`可以直接使用而不需要任何导入?

Rust ECDH 不会产生与 NodeJS/Javascript 和 C 实现相同的共享密钥

Rust 中多个 & 符号的内存表示

Rust并发读写引起的死锁问题

为什么Rust编译器会忽略模板参数应具有静态生命周期?

Rust 程序中的内存泄漏

如何使用泛型满足 tokio 异步任务中的生命周期界限

使用 traits 时,borrow 的值不会存在足够长的时间

如何连接 Rust 中的相邻切片

从现有系列和 map 值创建新系列

判断 is_ok 后重用结果

如何在 Rust 的内置函数上实现特征?