#include void sys::getTimeDate(TimeDate* td) { auto now = std::time(nullptr); auto tm = *std::localtime(&now); sprintf(td->time, "%02d:%02d:%02d", tm.tm_hour, tm.tm_min, tm.tm_sec); sprintf(td->date, "%s, %d %s", wdays[tm.tm_wday], tm.tm_mday, months[tm.tm_mon]); } void sys::getRam(Memory* mem) { auto content = readFile("/proc/meminfo", 128); // file is longer than that but its all we need mem->free = get_val("MemAvailable:", content); mem->total = get_val("MemTotal:", content); mem->used = mem->total - mem->free; } void sys::getDisk(Memory* disk, std::string mount) { struct statvfs diskData; statvfs(mount.c_str(), &diskData); disk->free = diskData.f_bfree * diskData.f_frsize; disk->used = (diskData.f_blocks - diskData.f_bfree) * diskData.f_frsize; disk->total = diskData.f_blocks * diskData.f_frsize; }