Betriebssystem ermitteln
-
Wie kann ich mit C das Betriebssystem ermitteln, auf dem das Programm läuft?
Bei Google hab ich nur was für C# und Java gefunden.elske
-
Da das Programm sowieso für jedes Betriebssystem neu übersetzt werden muss, kannst du dies mit Präprozessordirektiven unterscheiden.
#ifdef LINUX void machWas() { // ... } #elif defined(WIN32) void machWas() { // ... } #endif
-
und die windows-version?
-
Cork_City schrieb:
und die windows-version?
#ifdef LINUX void machWas() { // ... } #elif defined(WIN32) void machWas() { system(systeminfo.exe); // Und dann irgendwie den Output abfangen und auswerten. // ... } #endif
-
Unter POSIX-konformen Systemen:
#include <sys/utsname.h> /* ... */ struct utsname buf; uname(&buf);
siehe ggf. uname(2).
Unter Windows:
#include <windows.h> /* ... */ OSVERSIONINFO buf; buf.dwOSVersionInfoSize = sizeof(OSVERSIONINFO); GetVersionEx(&buf);
Siehe dazu auch hier.