31 releases

new 0.3.12 May 15, 2025
0.3.10 Nov 28, 2024
0.3.9 May 8, 2024
0.3.8 Nov 28, 2023
0.1.1 Mar 29, 2015

#7 in Operating systems

Download history 2812871/week @ 2025-01-23 2933468/week @ 2025-01-30 3197231/week @ 2025-02-06 3063481/week @ 2025-02-13 3499132/week @ 2025-02-20 3415624/week @ 2025-02-27 3769436/week @ 2025-03-06 3674341/week @ 2025-03-13 4340321/week @ 2025-03-20 3464565/week @ 2025-03-27 3961722/week @ 2025-04-03 3774320/week @ 2025-04-10 3417971/week @ 2025-04-17 3642637/week @ 2025-04-24 3428671/week @ 2025-05-01 3561593/week @ 2025-05-08

14,710,338 downloads per month
Used in 29,135 crates (213 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 = "*"

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–7.5MB
~53K SLoC

OSZAR »