std::io::Error
显示的错误消息带有"(os Error n)“后缀,可通过运行以下程序轻松重现:
use std::fs;
use std::io::Write;
fn main() {
let fl = "no such file";
if let Err(e) = fs::metadata(fl) {
writeln!(std::io::stderr(), "{}: {}", fl, e).unwrap();
}
}
输出:
no such file: No such file or directory (os error 2)
如何获得系统提供的系统错误信息,即没有"os error 2“部分?
我试过了:
e.description()
,它返回一个不同的错误消息("entity not found"),这很有用,但不是我在Error
对象的结构中看到的,例如使用{:?}
调试显示,它显示该对象确实包含未修饰的错误字符串,但它似乎隐藏在内部字段中。请注意,我的目标是一种可移植的解决方案,而不仅仅是Linux解决方案。
https://stackoverflow.com/questions/40710115
复制相似问题