1 // Copyright 2018 The Rust Project Developers. See the COPYRIGHT
2 // file at the top-level directory of this distribution and at
3 // http://rust-lang.org/COPYRIGHT.
5 // Licensed under the Apache License, Version 2.0 <LICENSE-APACHE or
6 // http://www.apache.org/licenses/LICENSE-2.0> or the MIT license
7 // <LICENSE-MIT or http://opensource.org/licenses/MIT>, at your
8 // option. This file may not be copied, modified, or distributed
9 // except according to those terms.
12 use libc::{self, c_int};
15 pub use sys::cloudabi::shims::os::*;
17 pub fn errno() -> i32 {
23 unsafe { errno as i32 }
26 /// Gets a detailed string description for the given error number.
27 pub fn error_string(errno: i32) -> String {
28 // cloudlibc's strerror() is guaranteed to be thread-safe. There is
29 // thus no need to use strerror_r().
30 str::from_utf8(unsafe { CStr::from_ptr(libc::strerror(errno)) }.to_bytes())
35 pub fn exit(code: i32) -> ! {
36 unsafe { libc::exit(code as c_int) }