33 releases

0.3.14 Sep 9, 2025
0.3.13 Jun 19, 2025
0.3.12 May 15, 2025
0.3.10 Nov 28, 2024
0.1.1 Mar 29, 2015

#5 in Operating systems

Download history 5264121/week @ 2025-09-23 5088442/week @ 2025-09-30 5049755/week @ 2025-10-07 5087365/week @ 2025-10-14 5378809/week @ 2025-10-21 5496315/week @ 2025-10-28 5671096/week @ 2025-11-04 5426100/week @ 2025-11-11 5860759/week @ 2025-11-18 4768055/week @ 2025-11-25 5641334/week @ 2025-12-02 6359237/week @ 2025-12-09 6284992/week @ 2025-12-16 3825768/week @ 2025-12-23 4252670/week @ 2025-12-30 7156770/week @ 2026-01-06

22,669,568 downloads per month
Used in 45,615 crates (239 directly)

MIT/Apache

18KB
318 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 = "0.3"

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 = "0.3", default-features = false }

The Error impl will be unavailable.

Dependencies

~0–3.5MB
~62K SLoC