1 个不稳定版本

0.1.0 2021年5月13日

#5 in #devs

MIT 许可协议

17KB
304 代码行(不含注释)

安全便携的块设备操作包装器

crates.io(http://meritbadge.herokuapp.com/block-devs

文档(发布版)

Block Devs 提供了对处理块设备(如USB闪存盘、SSD、硬盘等)的 ioctl 调用的安全包装。

它旨在为获取磁盘字节数等跨平台功能提供一致的接口。

它通过在标准 File 结构体上扩展特质来实现。

    use block-devs::BlockExt;
    use std::fs::File;
    
    let path = "/dev/sda2";
    let file = File::open(path)?;
    let bytes = file.get_block_device_size()?;
    let gb = bytes >> 30;

    println!("disk is {} blocks {}gb", bytes, gb);

支持的平台

目前支持 Linux、OS X 和 Free BSD,欢迎为其他平台提供拉取请求。

许可协议

block-devs 在 MIT 许可协议下发布。有关详细信息,请参阅 LICENSE


lib.rs:

Block Devs 提供了对处理块设备(如USB闪存盘、SSD、硬盘等)的 ioctl 调用的安全包装。

它旨在为获取磁盘字节数等跨平台功能提供一致的接口。

目前支持 Linux、macOS 和 Open BSD。

它通过在标准 File 结构体上扩展特质 (BlckExt) 来实现。

    use block_devs::BlckExt;
    use std::fs::File;

    let path = "/dev/sda2";
    let file = File::open(path).unwrap();
    let count = file.get_block_count().unwrap();
    let bytes = file.get_block_device_size().unwrap();
    let gb = bytes >> 30;

    println!("disk is {} blocks totaling {}gb", count, gb);

依赖项

~1.5MB
~36K SLoC