YoushouldhavereceivedacopyoftheGNUGeneralPublicLicense alongwiththisprogram;ifnot,writetotheFreeSoftware
Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1335 USA */
struct utsname { char sysname[16]; // Name of this implementation of the operating system. char nodename[16]; // Name of this node within the communications // network to which this node is attached, if any. char release[16]; // Current release level of this implementation. char version[256]; // Current version level of this release. char machine[16]; // Name of the hardware type on which the system is running.
};
/* Get commonly used name for Windows version */ staticconstchar *get_os_version_name(OSVERSIONINFOEX *ver)
{
DWORD major = ver->dwMajorVersion;
DWORD minor = ver->dwMinorVersion; if (major == 10 && minor == 0)
{ return (ver->wProductType == VER_NT_WORKSTATION) ? "Windows 10" : "Windows Server 2016";
} if (major == 6 && minor == 3)
{ return (ver->wProductType == VER_NT_WORKSTATION)? "Windows 8.1":"Windows Server 2012 R2";
} if (major == 6 && minor == 2)
{ return (ver->wProductType == VER_NT_WORKSTATION)? "Windows 8":"Windows Server 2012";
} if (major == 6 && minor == 1)
{ return (ver->wProductType == VER_NT_WORKSTATION)? "Windows 7":"Windows Server 2008 R2";
} if (major == 6 && minor == 0)
{ return (ver->wProductType == VER_NT_WORKSTATION)? "Windows Vista":"Windows Server 2008";
} if (major == 5 && minor == 2)
{ if (GetSystemMetrics(SM_SERVERR2) != 0) return"Windows Server 2003 R2"; if (ver->wSuiteMask & VER_SUITE_WH_SERVER) return"Windows Home Server";
SYSTEM_INFO sysinfo;
GetSystemInfo(&sysinfo); if (ver->wProductType == VER_NT_WORKSTATION &&
sysinfo.wProcessorArchitecture==PROCESSOR_ARCHITECTURE_AMD64) return"Windows XP Professional x64 Edition";
return"Windows Server 2003";
} if (major == 5 && minor == 1) return"Windows XP"; if (major == 5 && minor == 0) return"Windows 2000";
return"";
}
staticint uname(struct utsname *buf)
{
OSVERSIONINFOEX ver;
ver.dwOSVersionInfoSize = (DWORD)sizeof(ver); /* GetVersionEx got deprecated, we need it anyway, so disable deprecation warnings. */ #ifdef _MSC_VER #pragma warning (disable : 4996) #endif #ifdef __clang__ #pragma clang diagnostic ignored "-Wdeprecated-declarations" #endif if (!GetVersionEx((OSVERSIONINFO *)&ver)) return -1;
/* get the number of (online) CPUs */ int my_getncpus()
{ #ifdef _SC_NPROCESSORS_ONLN return sysconf(_SC_NPROCESSORS_ONLN); #elifdefined(_WIN32)
SYSTEM_INFO sysinfo;
GetSystemInfo(&sysinfo); return sysinfo.dwNumberOfProcessors; #else return0; #endif
}
Die Informationen auf dieser Webseite wurden
nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit,
noch Qualität der bereit gestellten Informationen zugesichert.
Bemerkung:
Die farbliche Syntaxdarstellung und die Messung sind noch experimentell.