Rust 如何用退出代码干净地结束程序?
在Rust 1.0中是否有返回退出代码的方法 我试过Rust 如何用退出代码干净地结束程序?,rust,Rust,在Rust 1.0中是否有返回退出代码的方法 我试过env::设置退出状态(退出代码)但这会生成编译器错误 还有一个问题:这是类似的,但询问了进程何时必须提前退出的情况 编辑:我正在寻找一种解决方案,它还允许进程整理堆栈、调用析构函数等。使用指定的退出代码退出程序。根据的注释进行构建,如果您正在搜索与C的return exit\u code等效的代码,您可以通过以下方式人工构建它: fn main() { let exit_code = real_main(); std::pr
env::设置退出状态(退出代码)代码>但这会生成编译器错误
还有一个问题:这是类似的,但询问了进程何时必须提前退出的情况
编辑:我正在寻找一种解决方案,它还允许进程整理堆栈、调用析构函数等。使用指定的退出代码退出程序。根据的注释进行构建,如果您正在搜索与C的return exit\u code
等效的代码,您可以通过以下方式人工构建它:
fn main() {
let exit_code = real_main();
std::process::exit(exit_code);
}
fn real_main() -> i32 {
// the real program here
}
这样,程序的所有对象都将在real\u main()
函数的作用域内,您可以安全地使用return exit\u代码当所有析构函数仍然正常运行时,main
中的code>。自Rust 1.26以来,main
函数不再局限于()
:main
还可以为任何类型的E:Debug
返回结果。Ok
值映射到EXIT\u SUCCESS
(在所有平台上恰好为0),而Err
值映射到EXIT\u FAILURE
(在所有平台上恰好为1)。错误值也会自动打印到标准错误流中
将来,Rust将为main
支持更多的返回类型。这一特性(在Rust 1.31.1中不稳定)定义了所有这些类型。trait的任务是将值转换为退出代码。当终止
变得稳定时,应用程序自然能够自己实现该特性以提供自己的结果类型。不幸的是,它没有清理并调用析构函数。我会修正这个问题,提到这一点。你有什么理由需要进行清理吗?你们有做“有趣”事情的析构函数吗?如果没有,那么让操作系统清理进程通常就足够了代码>在C语言中。如果可能的话,我想避免不刷新到磁盘等的可能性。@static\u rtti您能进一步解释什么部分不合适吗?当然是一种系统编程语言。。。请记住,Rust也适用于没有启动程序进程(如内核)的环境。我对它读得不够好,这听起来像我想要的。set\u exit\u status
不推荐使用