wasi: Implement `error_string` to get readable errors
This routes the `error_string` API to `strerror` in libc which should have more human readable descriptions.
This commit is contained in:
parent
60f6cbd002
commit
32a76844c4
|
@ -27,8 +27,21 @@ pub fn errno() -> i32 {
|
|||
unsafe { errno as i32 }
|
||||
}
|
||||
|
||||
pub fn error_string(_errno: i32) -> String {
|
||||
"operation failed".to_string()
|
||||
pub fn error_string(errno: i32) -> String {
|
||||
extern {
|
||||
fn strerror_r(errnum: libc::c_int, buf: *mut libc::c_char,
|
||||
buflen: libc::size_t) -> libc::c_int;
|
||||
}
|
||||
|
||||
let mut buf = [0 as libc::c_char; 1024];
|
||||
|
||||
let p = buf.as_mut_ptr();
|
||||
unsafe {
|
||||
if strerror_r(errno as libc::c_int, p, buf.len()) < 0 {
|
||||
panic!("strerror_r failure");
|
||||
}
|
||||
str::from_utf8(CStr::from_ptr(p).to_bytes()).unwrap().to_owned()
|
||||
}
|
||||
}
|
||||
|
||||
pub fn getcwd() -> io::Result<PathBuf> {
|
||||
|
|
Loading…
Reference in New Issue