#include "cmd_botu.h" #define BILLION 1000000000L void *cmd_botu(void *data) { char *ret = NULL; int fret=-1; const int buf_size = 128; char buf[buf_size+1]; struct timespec start; struct stat file_stat; uint64_t proc_sec; printf("BOTU\n"); stat("/proc/self",&file_stat); /* CHECK PREDIFINED MACROSES IF SUCH FUNCTIONALITY EXCISTS OR NOT */ #if _POSIX_C_SOURCE < 199309L ERROR("Dont have functionality\n"); #endif fret = clock_gettime(CLOCK_REALTIME, &start); if (fret<0) { perror("clock gettime"); ret = alloc_new_str("Can get clock thread uptime\n"); return ret; } proc_sec = start.tv_sec - file_stat.st_ctim.tv_sec; snprintf(buf, buf_size, "%lud %luh %lum %lus", (proc_sec/(3600*24)), (proc_sec/(3600))%24, (proc_sec/60)%60, proc_sec%60); ret = alloc_new_str(buf); return ret; }