My slstatus configuration
Du kannst nicht mehr als 25 Themen auswählen Themen müssen entweder mit einem Buchstaben oder einer Ziffer beginnen. Sie können Bindestriche („-“) enthalten und bis zu 35 Zeichen lang sein.
 
 
 
 

64 Zeilen
1.0 KiB

  1. /* See LICENSE file for copyright and license details. */
  2. #include <errno.h>
  3. #include <stdio.h>
  4. #include <string.h>
  5. #if defined(__linux__)
  6. #include <sys/sysinfo.h>
  7. #elif defined(__OpenBSD__)
  8. #include <sys/sysctl.h>
  9. #include <sys/time.h>
  10. #endif
  11. #include "../util.h"
  12. #if defined(__linux__)
  13. const char *
  14. uptime(void)
  15. {
  16. int h;
  17. int m;
  18. int uptime = 0;
  19. struct sysinfo info;
  20. sysinfo(&info);
  21. uptime = info.uptime;
  22. h = uptime / 3600;
  23. m = (uptime - h * 3600) / 60;
  24. return bprintf("%dh %dm", h, m);
  25. }
  26. #elif defined(__OpenBSD__)
  27. const char *
  28. uptime(void)
  29. {
  30. int h;
  31. int m;
  32. int uptime = 0;
  33. int mib[2];
  34. size_t size;
  35. time_t now;
  36. struct timeval boottime;
  37. time(&now);
  38. mib[0] = CTL_KERN;
  39. mib[1] = KERN_BOOTTIME;
  40. size = sizeof(boottime);
  41. if (sysctl(mib, 2, &boottime, &size, NULL, 0) != -1)
  42. uptime = now - boottime.tv_sec;
  43. else {
  44. fprintf(stderr, "sysctl 'KERN_BOOTTIME': %s\n", strerror(errno));
  45. return NULL;
  46. }
  47. h = uptime / 3600;
  48. m = (uptime - h * 3600) / 60;
  49. return bprintf("%dh %dm", h, m);
  50. }
  51. #endif