2015-04-06 63 views

回答

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然后解释代码的意思,但我相信你知道如何搜索这些,现在你有问题的处理。

+1

谢谢!我没有想过使用显示格式而不是调试来获取更详细的信息。 – 2015-04-06 13:27:59