首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何获得系统提供的没有"os error n“后缀的错误消息?

如何获得系统提供的没有"os error n“后缀的错误消息?
EN

Stack Overflow用户
提问于 2016-11-21 06:23:30
回答 1查看 1K关注 0票数 8

std::io::Error显示的错误消息带有"(os Error n)“后缀,可通过运行以下程序轻松重现:

代码语言:javascript
运行
复制
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();
    }
}

输出:

代码语言:javascript
运行
复制
no such file: No such file or directory (os error 2)

如何获得系统提供的系统错误信息,即没有"os error 2“部分?

我试过了:

  • 调用e.description(),它返回一个不同的错误消息("entity not found"),这很有用,但不是我在Error对象的结构中看到的,例如使用{:?}调试显示,它显示该对象确实包含未修饰的错误字符串,但它似乎隐藏在内部字段中。

请注意,我的目标是一种可移植的解决方案,而不仅仅是Linux解决方案。

EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/40710115

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档