Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How to get current hour (time of day) in linux kernel space

Tags:

I'm writing a kernel module that checks to see if the time is between two specified hours, and disables input if it is. This has to do with me wanting to make sure I go to bed early. (I know I could also use any number of different techniques including cron etc, but I wanted to learn kernel programming...)

As a first version, I therefore check if the current hour is between start and end, which are set via parameters to the module.

My question is therefore : How do I get the current hour? I have no access to the usual time functions in the standard library because I am in kernel space. I'm guessing that I should be using do_gettimeofday() for this, but that only gives me seconds and nanoseconds, and I need hours in the current day.

Thanks.

like image 647
Tom Macdonald Avatar asked Feb 22 '11 10:02

Tom Macdonald


1 Answers

time_to_tm function can be of your help, which returns the structure tm. Timezone available in variable sys_tz, it can help you to set your offset properly to get local time.

like image 171
Zimbabao Avatar answered Oct 23 '22 16:10

Zimbabao