1 个不稳定版本
0.1.0 | 2021年5月13日 |
---|
#5 in #devs
17KB
304 代码行(不含注释)
安全便携的块设备操作包装器
(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