24#include <core/exceptions/software.h>
25#include <sys/utsname.h>
26#include <utils/system/hostinfo.h>
44 utsname = (struct ::utsname *)malloc(
sizeof(struct ::utsname));
46 if (uname(utsname) != 0) {
72 if (shortname_ != NULL) {
75 if (domain_name != NULL) {
80 if ((dot = strchr(utsname->nodename,
'.')) == NULL) {
81 shortname_ = strdup(utsname->nodename);
82 domain_name = strdup(
"");
84 int short_length = dot - utsname->nodename + 1;
85 int domain_length = strlen(utsname->nodename) - short_length + 1;
86 shortname_ = (
char *)malloc(short_length);
87 shortname_[short_length - 1] = 0;
88 strncpy(shortname_, utsname->nodename, short_length - 1);
90 domain_name = (
char *)malloc(domain_length);
91 domain_name[domain_length - 1] = 0;
92 strncpy(domain_name, dot + 1, domain_length - 1);
102 return utsname->nodename;
129 return utsname->machine;
138 return utsname->sysname;
147 return utsname->release;
156 return utsname->version;
const char * sys_release()
Get system release (kernel version on Linux).
const char * name()
Get full hostname.
const char * domain()
Get domain name (after first dot or none if no dot in name).
void update()
Update information.
const char * arch()
Get architecture (like i686 or x86_64).
const char * short_name()
Get short hostname (up to first dot).
const char * sys_version()
Get system version (build date on Linux).
const char * sys_name()
Get system name (like Linux).
A NULL pointer was supplied where not allowed.
Fawkes library namespace.