https://github.com/lambda-fairy/rust-errno
:boom: Cross-platform interface to the `errno` variable
https://github.com/lambda-fairy/rust-errno
Last synced: about 1 year ago
JSON representation
:boom: Cross-platform interface to the `errno` variable
- Host: GitHub
- URL: https://github.com/lambda-fairy/rust-errno
- Owner: lambda-fairy
- License: apache-2.0
- Created: 2015-03-18T07:12:51.000Z (over 11 years ago)
- Default Branch: main
- Last Pushed: 2025-05-10T11:39:16.000Z (about 1 year ago)
- Last Synced: 2025-05-15T00:14:05.907Z (about 1 year ago)
- Language: Rust
- Homepage: https://docs.rs/errno
- Size: 128 KB
- Stars: 69
- Watchers: 4
- Forks: 43
- Open Issues: 3
-
Metadata Files:
- Readme: README.md
- Changelog: CHANGELOG.md
- License: LICENSE-APACHE
Awesome Lists containing this project
README
# errno [](https://github.com/lambda-fairy/rust-errno/actions/workflows/main.yml) [](https://crates.io/crates/errno)
Cross-platform interface to the [`errno`][errno] variable. Works on Rust 1.56 or newer.
Documentation is available at .
[errno]: https://en.wikipedia.org/wiki/Errno.h
## Dependency
Add to your `Cargo.toml`:
```toml
[dependencies]
errno = "*"
```
## Comparison with `std::io::Error`
The standard library provides [`Error::last_os_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
[last_os_error]: https://doc.rust-lang.org/std/io/struct.Error.html#method.last_os_error
## Examples
```rust
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:
```toml
[dependencies]
errno = { version = "*", default-features = false }
```
The `Error` impl will be unavailable.