Überprüfen ob Windows oder Unix
-
Hallo, weiß jemand wie ich im Quellcode (C) überprüfen kann, ob das System Windows oder Unix ist?
Es geht um die Pfadangaben weil der "normale Slash" unter Windows XP nicht akzeptiert wird.
Danke im Voraus
-
-
Gibt es auch eine Möglichkeit während der Laufzeit? Weil nicht jede Entwicklungsumgebung diese Makros definiert.
-
Asyl-Dämon schrieb:
Es geht um die Pfadangaben weil der "normale Slash" unter Windows XP nicht akzeptiert wird.
Doch, sollte AFAIK in den meisten Kontexten schon akzeptiert werden.
-
Asyl-Dämon schrieb:
Es geht um die Pfadangaben weil der "normale Slash" unter Windows XP nicht akzeptiert wird.
Wo steht das? Unter welchen Umständen *eek*
-
@Swordfish ich habe es ausprobiert mit einer alten Windows XP Version.
In der Konsole funktioniert: "cd C:\Dokumente und Einstellungen"
aber nicht: "cd C:/Dokumente und Einstellungen"
-
cd "C:/Documents and Settings"
funktioniert gaaaanz toll.
-
Hier ein screenshot:
http://www.bilder-upload.eu/show.php?file=75a670-1419783600.jpg
-
Hier ein screenshot:
http://abload.de/img/untitledp9pet.png
-
@Swordfish In deinem Link hast du doch den Backslash verwendet
-
Gibt es einen Unterschied in der Handhabe zwischen XP und Win7?
Bei mir funktioniert beides unter Win7, klar das die "quotation" gebraucht wird.
-
Unter Windows 7 funktioniert es bei mir auch wunderbar
-
Ich bin mir jetzt nicht sicher, aber es kann auch sein, dass die entsprechenden Tools das selber prüfen. Also, cd schaut, ob da ein / vorkommt und sagt, das mag ich nicht. Das heißt jetzt aber noch nicht, dass die entsprechenden API Funktionen von Windows nicht auch mit Slashes zurechtkommen würde. Ich glaub nämlich schon, dass die Windows API auch unter XP Slashes kann. Sicher bin ich mir aber nicht mehr.
-
Asyl-Dämon schrieb:
@Swordfish In deinem Link hast du doch den Backslash verwendet
Oh, sorry, Macht der Gewohnheit.
Hier ein screenshot:
http://abload.de/img/untitled9grbm.png
-
Ich dachte das XP schon ein "echtes" NT-System sei, da ist es nämlich egal AFAIK.
Diesen doofen backslash dafür zu nutzen war eine super Idee
Helfen dir die Links weiter?
http://stackoverflow.com/questions/2102401/determine-if-o-s-is-windows-7
http://en.wikipedia.org/wiki/List_of_Microsoft_Windows_versions
http://msdn.microsoft.com/en-us/library/ms724358(VS.85).aspx
-
Wie wäre es wenn ich während der Laufzeit überprüfe ob C:\windows existiert? Wäre das eine sichere Lösung?
-
Damit kommst du irgendwie von deiner ursprünglichen Frage ab. Ob Windows oder Linux musst du zur Compilezeit überprüfen, das kann zur Lauftzeit nicht funktionieren, die sind natürlich nicht binärkompatibel, du musst sowieso einmal für Windows und einmal für Linux bauen.
Wegen den Pfaden kannst du eine plattformunabhängige Bibliothek wie boost oder Qt verwenden. Oder es einfach mit Slash probieren Das sollte schon funktionieren. XP kannst mittlerweile eh vergessen. Bis dein Programm fertig ist, wird sich Windows 2050 wahrscheinlich eh längst etabliert haben.
-
Die Links haben also nicht geholfen, damit kann man das zur Laufzeit feststellen, nun gut.
-
Natürlich kann man die Windows Version zur Lauftzeit rausfinden, aber nicht ob das Windows oder Linux ist, das macht keinen Sinn.
-
Übrigens, "C:\windows" muss es überhaupt nicht geben.