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 }
|
unsafe { errno as i32 }
|
||||||
}
|
}
|
||||||
|
|
||||||
pub fn error_string(_errno: i32) -> String {
|
pub fn error_string(errno: i32) -> String {
|
||||||
"operation failed".to_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> {
|
pub fn getcwd() -> io::Result<PathBuf> {
|
||||||
|
|
Loading…
Reference in New Issue