jack2/macosx/uptime.c

18 lines
375 B
C

#include <time.h>
#include <errno.h>
#include <sys/sysctl.h>
long uptime(void)
{
struct timeval boottime;
size_t len = sizeof(boottime);
int mib[2] = { CTL_KERN, KERN_BOOTTIME };
if (sysctl(mib, 2, &boottime, &len, NULL, 0) < 0)
{
return -1L;
}
time_t bsec = boottime.tv_sec, csec = time(NULL);
return (long) difftime(csec, bsec);
}