1 个不稳定版本
使用旧的Rust 2015
0.2.0 | 2018年2月20日 |
---|
#833 在 Unix API 中
533 每月下载量
8KB
115 行
hwclock-rs
hwclock
模块通过内核结构和ioctl提供对硬件时钟当前时间的薄包装,并将其从有效 chrono
数据结构转换过来。
示例
extern crate chrono;
extern crate hwclock;
fn main() {
use hwclock::HwClockDev;
let rtc = HwClockDev::open("/dev/rtc0").expect("could not open rtc clock");
println!("{:?}", rtc);
let time = rtc.get_time().expect("could not read rtc clock");
println!("{:?}", time);
println!("Setting clock ahead 30 seconds");
let mut ct: chrono::NaiveDateTime = time.into();
ct += chrono::Duration::seconds(30);
// convert back to RtcTime and set it
let ntime = ct.into();
rtc.set_time(&ntime).expect("could not set rtc clock");
println!("Rereading...");
let time2 = rtc.get_time().expect("could not read rtc clock");
println!("{:?}", time2);
}
lib.rs
:
Linux硬件时钟处理
hwclock
模块通过内核结构和ioctl提供对硬件时钟当前时间的薄包装,并将其从有效 chrono
数据结构转换过来。
extern crate chrono;
extern crate hwclock;
fn main() {
use hwclock::HwClockDev;
let rtc = HwClockDev::open("/dev/rtc0").expect("could not open rtc clock");
println!("{:?}", rtc);
let time = rtc.get_time().expect("could not read rtc clock");
println!("{:?}", time);
println!("Setting clock ahead 30 seconds");
let mut ct: chrono::NaiveDateTime = time.into();
ct += chrono::Duration::seconds(30);
// convert back to RtcTime and set it
let ntime = ct.into();
rtc.set_time(&ntime).expect("could not set rtc clock");
println!("Rereading...");
let time2 = rtc.get_time().expect("could not read rtc clock");
println!("{:?}", time2);
}
依赖关系
~3MB
~59K SLoC