27 releases

0.3.8 Nov 28, 2023
0.3.5 Oct 8, 2023
0.3.2 Jul 30, 2023
0.3.0 Feb 12, 2023
0.1.1 Mar 29, 2015

#9 in Operating systems

Download history 1412412/week @ 2024-01-01 1725144/week @ 2024-01-08 1699486/week @ 2024-01-15 1677718/week @ 2024-01-22 1752135/week @ 2024-01-29 1752282/week @ 2024-02-05 1718581/week @ 2024-02-12 1723055/week @ 2024-02-19 1781882/week @ 2024-02-26 1773215/week @ 2024-03-04 1754597/week @ 2024-03-11 1781817/week @ 2024-03-18 1708357/week @ 2024-03-25 1752939/week @ 2024-04-01 1716656/week @ 2024-04-08 1699127/week @ 2024-04-15

6,991,588 downloads per month
Used in 20,054 crates (191 directly)

MIT/Apache

16KB
293 lines

errno CI Cargo

Cross-platform interface to the errno variable. Works on Rust 1.56 or newer.

Documentation is available at https://docs.rs/errno.

Dependency

Add to your Cargo.toml:

[dependencies]
errno = "*"

Comparison with std::io::Error

The standard library provides Error::last_os_error which fetches errno in the same way.

This crate provides these extra features:

  • No heap allocations
  • Optional #![no_std] support
  • A set_errno function

Examples

extern crate errno;
use errno::{Errno, errno, set_errno};

// Get the current value of errno
let e = errno();

// Set the current value of errno
set_errno(e);

// Extract the error code as an i32
let code = e.0;

// Display a human-friendly error message
println!("Error {}: {}", code, e);

#![no_std]

Enable #![no_std] support by disabling the default std feature:

[dependencies]
errno = { version = "*", default-features = false }

The Error impl will be unavailable.

Dependencies

~0–11MB
~77K SLoC