|
|
|
@ -11,18 +11,31 @@
|
|
|
|
|
|
|
|
|
|
|
|
#include "../util.h"
|
|
|
|
#include "../util.h"
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
#if defined(__linux__)
|
|
|
|
const char *
|
|
|
|
const char *
|
|
|
|
uptime(void)
|
|
|
|
uptime(void)
|
|
|
|
{
|
|
|
|
{
|
|
|
|
int h;
|
|
|
|
int h;
|
|
|
|
int m;
|
|
|
|
int m;
|
|
|
|
int uptime = 0;
|
|
|
|
int uptime = 0;
|
|
|
|
#if defined(__linux__)
|
|
|
|
|
|
|
|
struct sysinfo info;
|
|
|
|
struct sysinfo info;
|
|
|
|
|
|
|
|
|
|
|
|
sysinfo(&info);
|
|
|
|
sysinfo(&info);
|
|
|
|
uptime = info.uptime;
|
|
|
|
uptime = info.uptime;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
h = uptime / 3600;
|
|
|
|
|
|
|
|
m = (uptime - h * 3600) / 60;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
return bprintf("%dh %dm", h, m);
|
|
|
|
|
|
|
|
}
|
|
|
|
#elif defined(__OpenBSD__)
|
|
|
|
#elif defined(__OpenBSD__)
|
|
|
|
|
|
|
|
const char *
|
|
|
|
|
|
|
|
uptime(void)
|
|
|
|
|
|
|
|
{
|
|
|
|
|
|
|
|
int h;
|
|
|
|
|
|
|
|
int m;
|
|
|
|
|
|
|
|
int uptime = 0;
|
|
|
|
|
|
|
|
|
|
|
|
int mib[2];
|
|
|
|
int mib[2];
|
|
|
|
size_t size;
|
|
|
|
size_t size;
|
|
|
|
time_t now;
|
|
|
|
time_t now;
|
|
|
|
@ -41,9 +54,10 @@ uptime(void)
|
|
|
|
fprintf(stderr, "sysctl 'KERN_BOOTTIME': %s\n", strerror(errno));
|
|
|
|
fprintf(stderr, "sysctl 'KERN_BOOTTIME': %s\n", strerror(errno));
|
|
|
|
return NULL;
|
|
|
|
return NULL;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
#endif
|
|
|
|
|
|
|
|
h = uptime / 3600;
|
|
|
|
h = uptime / 3600;
|
|
|
|
m = (uptime - h * 3600) / 60;
|
|
|
|
m = (uptime - h * 3600) / 60;
|
|
|
|
|
|
|
|
|
|
|
|
return bprintf("%dh %dm", h, m);
|
|
|
|
return bprintf("%dh %dm", h, m);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
#endif
|
|
|
|
|