I would like to find the time of the last reboot programmatically in Linux. I am using C and C++ in my module.
Is there an API?
I would like to find the time of the last reboot programmatically in Linux. I am using C and C++ in my module.
Is there an API?
There's no direct api, but you can read /proc/uptime
"file" to learn how many seconds the system have been running, subtract that from the current time - and assume that's when the machine was rebooted.
/proc/uptime This file contains two numbers: the uptime of the system (seconds), and the amount of time spent in idle process (seconds).
You could either invoke uptime
or take a look at /proc/uptime
. Given the current time, and knowing how long the system's been up allows you to calculate the time of the last reboot.
Alternatively, the btime
entry in /proc/stat
gives the boot time directly (in seconds since the epoch) -- search man proc
for btime
.
Also, you can find the last reboot time by reading the /var/log/wtmp file. This is a binary file but you can parse with it (or your C version of it)
http://pastebin.com/nSVw82cZ
[WARNING! terrible coding style!]