文件IO OS错误代码

时间:2015-04-06 13:04:27

标签: rust

在文件上调用write_all会返回错误,其中包含说明:os error。调试打印错误输出:Err(Error { repr: Os(9) })

错误是什么意思?

1 个答案:

答案 0 :(得分:1)

你没有包含任何代码,所以我不得不猜测你在做什么。这是重现错误的一段代码:

use std::fs;
use std::io::Write;

fn main() {
    let mut f = fs::File::open("/").unwrap();

    // f.write_all(b"hello").unwrap();
    // Error { repr: Os(9) }

    match f.write_all(b"hello") {
        Ok(..) => {},
        Err(e) => println!("{}", e),
    }
    // Bad file descriptor (os error 9)
}

如果您使用Display{})格式而不是Debug{:?}),则会看到错误消息,而不仅仅是错误代码。请注意unwrap将使用Debug格式化程序,因此在这种情况下您必须使用match

您也可以在内核源代码中look up the error code。你没有表明你是在运行Windows(不太可能),OS X还是Linux,所以我猜到了Linux。

lots of SO questions然后解释代码的含义,但我确定你知道如何搜索这些代码,现在你已经解决了这个问题。