在文件上调用write_all
会返回错误,其中包含说明:os error
。调试打印错误输出:Err(Error { repr: Os(9) })
错误是什么意思?
答案 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然后解释代码的含义,但我确定你知道如何搜索这些代码,现在你已经解决了这个问题。