OS abfragen
-
Hallo :p
Gibt es vielleicht irgendeine Möglichkeit, Plattformunabhängig zu programmieren, indem man mit #.. prüft, ob das Betriebssystem benutzt wird?
Als Beispiel:
#if WINDOWS Sleep(2000); #if LINUX sleep(2); // Bei Linux funktioniert das wie bei Windows glaub ich so ähnlich, nur in Sekunden und nicht in ms #endifWäre sehr nett, wenn mir jemand dazu etwas kleines erklären könnte

Mit freundlichen Grüßen,
..
-
Dafür gibt es vordefinierte Präprozessornamen wie "__WIN32", auf deren Existenz mit "#ifdef" geprüft werden kann.
-
Ja.
Was genau definiert ist, steht in der Bedienungssanleitung des jeweiligen Compilers.
Man fragt z.B. dann mit
#ifdef LINUX ... #endifab.
-
ja sollte es allerdings zu solchen komischen Betriebssystemabhängigen Funktionen kommen, dann würd ich mir die in eine inline Funktion kapseln, um eine einheitliche struktur ohne viele Makros zu sichern.
-
jamand hatte mal diesen guten Link gepostet:
http://predef.sourceforge.net/preos.html
-
Krux schrieb:
ja sollte es allerdings zu solchen komischen Betriebssystemabhängigen Funktionen kommen, dann würd ich mir die in eine inline Funktion kapseln, um eine einheitliche struktur ohne viele Makros zu sichern.
was für komische? ^^
b7f7 schrieb:
jamand hatte mal diesen guten Link gepostet:
http://predef.sourceforge.net/preos.htmlWie sollte ich das am Besten machen? Ein Beispiel wäre sicherlich besser zu verstehen

Mit freundlichen Grüßen,
..
-
Du sollst das betreibssystemabhängige kapseln damit du es an einer zentralen Stelle hast:
#ifdef _WIN32 #include <windows.h> #else #include <unistd.h> #endif void my_sleep(unsigned int ms) { #ifdef _WIN32 Sleep(ms); #else usleep(ms * 1000); // erwartet Mikrosekunde (glaub ich) #endif }Dann kannst du im eigentlichen Code immer my_sleep verwenden ohne immer das OS zu überprüfen.
Gruß
Don06