uptime: Simplifiy and clean up
This commit is contained in:
		
							parent
							
								
									f007007156
								
							
						
					
					
						commit
						e43c3a16f0
					
				| @ -1,41 +1,43 @@ | |||||||
| /* See LICENSE file for copyright and license details. */ | /* See LICENSE file for copyright and license details. */ | ||||||
| #include <errno.h> |  | ||||||
| #include <stdio.h> | #include <stdio.h> | ||||||
| #include <string.h> |  | ||||||
| 
 | 
 | ||||||
| #include "../util.h" | #include "../util.h" | ||||||
| 
 | 
 | ||||||
|  | const char * | ||||||
|  | format(int uptime) | ||||||
|  | { | ||||||
|  | 	int h, m; | ||||||
|  | 
 | ||||||
|  | 	h = uptime / 3600; | ||||||
|  | 	m = (uptime - h * 3600) / 60; | ||||||
|  | 
 | ||||||
|  | 	return bprintf("%dh %dm", h, m); | ||||||
|  | } | ||||||
|  | 
 | ||||||
| #if defined(__linux__) | #if defined(__linux__) | ||||||
| 	#include <sys/sysinfo.h> | 	#include <sys/sysinfo.h> | ||||||
| 
 | 
 | ||||||
| 	const char * | 	const char * | ||||||
| 	uptime(void) | 	uptime(void) | ||||||
| 	{ | 	{ | ||||||
| 		int h; | 		int uptime; | ||||||
| 		int m; |  | ||||||
| 		int uptime = 0; |  | ||||||
| 		struct sysinfo info; | 		struct sysinfo info; | ||||||
| 
 | 
 | ||||||
| 		sysinfo(&info); | 		sysinfo(&info); | ||||||
| 		uptime = info.uptime; | 		uptime = info.uptime; | ||||||
| 
 | 
 | ||||||
| 		h = uptime / 3600; | 		return format(uptime); | ||||||
| 		m = (uptime - h * 3600) / 60; |  | ||||||
| 
 |  | ||||||
| 		return bprintf("%dh %dm", h, m); |  | ||||||
| 	} | 	} | ||||||
| #elif defined(__OpenBSD__) | #elif defined(__OpenBSD__) | ||||||
|  | 	#include <errno.h> | ||||||
|  | 	#include <string.h> | ||||||
| 	#include <sys/sysctl.h> | 	#include <sys/sysctl.h> | ||||||
| 	#include <sys/time.h> | 	#include <sys/time.h> | ||||||
| 
 | 
 | ||||||
| 	const char * | 	const char * | ||||||
| 	uptime(void) | 	uptime(void) | ||||||
| 	{ | 	{ | ||||||
| 		int h; | 		int mib[2], uptime; | ||||||
| 		int m; |  | ||||||
| 		int uptime = 0; |  | ||||||
| 
 |  | ||||||
| 		int mib[2]; |  | ||||||
| 		size_t size; | 		size_t size; | ||||||
| 		time_t now; | 		time_t now; | ||||||
| 		struct timeval boottime; | 		struct timeval boottime; | ||||||
| @ -47,16 +49,13 @@ | |||||||
| 
 | 
 | ||||||
| 		size = sizeof(boottime); | 		size = sizeof(boottime); | ||||||
| 
 | 
 | ||||||
| 		if (sysctl(mib, 2, &boottime, &size, NULL, 0) != -1) | 		if (sysctl(mib, 2, &boottime, &size, NULL, 0) == -1) | ||||||
| 			uptime = now - boottime.tv_sec; |  | ||||||
| 		else { |  | ||||||
| 			fprintf(stderr, "sysctl 'KERN_BOOTTIME': %s\n", strerror(errno)); | 			fprintf(stderr, "sysctl 'KERN_BOOTTIME': %s\n", strerror(errno)); | ||||||
| 			return NULL; | 			return NULL; | ||||||
| 		} | 		} | ||||||
| 
 | 
 | ||||||
| 		h = uptime / 3600; | 		uptime = now - boottime.tv_sec; | ||||||
| 		m = (uptime - h * 3600) / 60; |  | ||||||
| 
 | 
 | ||||||
| 		return bprintf("%dh %dm", h, m); | 		return format(uptime); | ||||||
| 	} | 	} | ||||||
| #endif | #endif | ||||||
|  | |||||||
		Loading…
	
		Reference in New Issue
	
	Block a user