2015-04-06 62 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