| uptime.c - slstatus - status monitor | |
| git clone git://git.suckless.org/slstatus | |
| Log | |
| Files | |
| Refs | |
| README | |
| LICENSE | |
| --- | |
| uptime.c (702B) | |
| --- | |
| 1 /* See LICENSE file for copyright and license details. */ | |
| 2 #include <stdint.h> | |
| 3 #include <stdio.h> | |
| 4 #include <time.h> | |
| 5 | |
| 6 #include "../slstatus.h" | |
| 7 #include "../util.h" | |
| 8 | |
| 9 #if defined(CLOCK_BOOTTIME) | |
| 10 #define UPTIME_FLAG CLOCK_BOOTTIME | |
| 11 #elif defined(CLOCK_UPTIME) | |
| 12 #define UPTIME_FLAG CLOCK_UPTIME | |
| 13 #else | |
| 14 #define UPTIME_FLAG CLOCK_MONOTONIC | |
| 15 #endif | |
| 16 | |
| 17 const char * | |
| 18 uptime(const char *unused) | |
| 19 { | |
| 20 char warn_buf[256]; | |
| 21 uintmax_t h, m; | |
| 22 struct timespec uptime; | |
| 23 | |
| 24 if (clock_gettime(UPTIME_FLAG, &uptime) < 0) { | |
| 25 snprintf(warn_buf, sizeof(warn_buf), "clock_gettime %d",… | |
| 26 warn(warn_buf); | |
| 27 return NULL; | |
| 28 } | |
| 29 | |
| 30 h = uptime.tv_sec / 3600; | |
| 31 m = uptime.tv_sec % 3600 / 60; | |
| 32 | |
| 33 return bprintf("%juh %jum", h, m); | |
| 34 } |