#include "ehs/system/User.h" #include "ehs/Log.h" #include #include #include namespace ehs { void User::GetId(UInt_32* const real, UInt_32* const effective, UInt_32* const saved) { if (getresuid(real, effective, saved) == -1) EHS_LOG_INT("Error", 0, strerror(errno)); } Str_8 User::GetName() { SInt_64 max = sysconf(_SC_LOGIN_NAME_MAX); if (max == -1) { EHS_LOG_INT("Error", 0, strerror(errno)); return {}; } Char_8* name = new Char_8[max]; if (getlogin_r(name, max) == -1) { delete[] name; EHS_LOG_INT("Error", 1, strerror(errno)); return {}; } Str_8 result(name); delete[] name; return result; } }