对于作业,我必须使用视频驱动程序和系统计时器处理程序将Linux系统的当前运行时间显示在屏幕的一角。
但是,我没有找到任何指向我在程序运行时从内核获取系统时间的方向。我猜它是在某个地址的内核内存中,我可以做类似的事情:
hour = get_word(MEM_LOCATION_OF_HOUR);
sec = get_word(MEM_LOCATION_OF_SEC);
ect...
但我不知道这是否可行。我的猜测是我们不允许使用像clock()这样的库调用,但如果这是唯一可能的方式,那么也许我们就是。
由于
答案 0 :(得分:0)
无法使用库调用? - 那只是疯狂。无论如何:
getnstimeofday(struct timespec *ts);
是 here
答案 1 :(得分:0)
在内核中,可以使用 ktime 。
一个简单的例子(用于计算时间差异)供您参考。
#include <linux/ktime.h>
int fun()
{
ktime_t entry_stamp, now;
s64 delta;
/* Get the current time .*/
entry_stamp = ktime_get();
/* Do your Stuff... */
now = ktime_get();
delta = ktime_to_ns(ktime_sub(now, entry_stamp));
printk(KERN_INFO "Time Taken:%lld ns to execute\n",(long long)delta);
return 0;
}
答案 2 :(得分:0)
我发现实时时钟在启动时保持正确的值。 CMOS包含所有需要的信息。