rausfinden, welches os verwendet wird
-
ok, danke, ich hab mal was gefunden das ifdef win_32 heisst, wsa bedeutet das?
d
-
Ich glaub du meinst "_WIN32", und diese steht in der oben geposteten Liste, dass es für Windows 32-Bit und 64-Bit Umgebungen definiert ist.
[Edit]Aber wie wie oben schon erwähnt, kannst du dies _nur_ zur Compile-Zeit ermitteln[/Edit]
MfG Marco
-
Hallo,
Um zur Laufzeit die Windows Version zu ermitteln könnte das hier helfen.
http://www.codeguru.com/cpp/w-p/system/systeminformation/article.php/c8973__1/Determine-Windows-Version-and-Edition.htm
-
Also wenn man etwas zur Compilezeit hat, hat man es doch erst recht zur Laufzeit... das Problem ist wenn überhaupt die fehlende Präzision. [/pingelig]
-
uname -a
-
knivil schrieb:
uname -a
$ uname -a Linux desktop_franz 3.2.6-gentoo #1 SMP Wed Feb 15 21:41:26 CET 2012 x86_64 Intel(R) Core(TM) i7-2600K CPU @ 3.40GHz GenuineIntel GNU/LinuxUnd wenn man im Makefile die EXTRAVERSION ändert, gibt uname -a gar keinen Hinweis mehr darauf, dass hier Gentoo am Laufen ist.
Einige Hinweise, wie man unter Linux an genauere Informationen kommt liefert der Thread hier:
http://www.cyberciti.biz/faq/find-linux-distribution-name-version-number/
-
cat /etc/*-release Arch Linux release DISTRIB_ID=archlinux DISTRIB_RELEASE=rolling DISTRIB_DESCRIPTION="Arch Linux"
-
Unter Debian:
$ cat /etc/*-release cat: /etc/*-release: Datei oder Verzeichnis nicht gefundenUps.
Ich denke, die beste Vorgehensweise hängt hier davon ab, was alterbro eigentlich mit der Information vorhat. Was hast du eigentlich mit der Information vor, alterbro?
-
SeppJ schrieb:
Zur Laufzeit oder zur Compilezeit? Und wie genau willst du es wissen? Ubuntu und Fedora auseinanderzuhalten dürfte ganz schön schwierig werden, da es nur unterschiedliche Geschmacksrichtungen des gleichen Betriebssystems sind.
Neben der Datei /etc/issue gibt es weitere Möglichkeiten, die Versionsnummer der Distribution herauszufinden.
Die Versionsnummer der Distribution ist bei vielen Linux Distributionen in einer Textdatei in /etc abgelegt.
Sie trägt den Namen Distributor-release oder Distributor_versionIn neueren - LSB konformen - Distributionen sind diese Daten in die Datei /etc/lsb-release gewandert.
Insofern ist es bei einer LSB konformen Distri sehr einfach, die Daten herauszufinden.
-
seldon schrieb:
Unter Debian:
$ cat /etc/*-release cat: /etc/*-release: Datei oder Verzeichnis nicht gefundenUps.
Ich denke, die beste Vorgehensweise hängt hier davon ab, was alterbro eigentlich mit der Information vorhat. Was hast du eigentlich mit der Information vor, alterbro?
Oh, unter Debian scheint die Datei /etc/debian_version zu heißen.
-
Wieso sollte man Linux-Distrubtionen auseinander halten wollen?
-
Keine Ahnung
Man sollte lieber die vorhandenen Pakete prüfen
-
pyhax schrieb:
Keine Ahnung
Man sollte lieber die vorhandenen Pakete prüfenWunderbar. Und welches Paketsystem möchtest du abfragen? Es gibt ja nur so "ein paar" Paketverwaltungssysteme. Und fast jede Distribution konfiguriert die anders oder schraubt anderweitig dran rum.
Um zu wissen, welche Pakete es gibt, musst du erst mal die Distribution kennen.
-
otze schrieb:
pyhax schrieb:
Keine Ahnung
Man sollte lieber die vorhandenen Pakete prüfenWunderbar. Und welches Paketsystem möchtest du abfragen? Es gibt ja nur so "ein paar" Paketverwaltungssysteme. Und fast jede Distribution konfiguriert die anders oder schraubt anderweitig dran rum.
Um zu wissen, welche Pakete es gibt, musst du erst mal die Distribution kennen.
Es interessiert ja nicht ob das Paket A oder B heisst, sondern es geht darum: ist das binary XYZ in mindestens dieser Version vorhanden? Ist die .so Datei FooBar in mindestens der Version Z vorhanden?
-
Aber dafür musst du sie erst mal finden können. Bei Pfaden sind die Distributionen allerdings noch kreativer als bei Paketsystemen.
-
Wie kann ich rausfinden welches os verwendet wird
Was moechtest du mit dieser Information machen, wozu dient sie?
-
otze schrieb:
Aber dafür musst du sie erst mal finden können. Bei Pfaden sind die Distributionen allerdings noch kreativer als bei Paketsystemen.
Nein, die Dateien liegen alle in den Suchpfaden.
Mit ´which foobar´ bekomme ich den Pfad zu foobar. Wenn foobar nicht im $PATH liegt, dann ist es nicht korrekt installiert.
Und .so Dateien liegen in einem der Pfade von $LD_LIBRARY_PATH sonst sind sie nicht korrekt installiert.Wenn meine Anwendung so alle Sachen checkt, dann kann man viel mehr Plattformen Supporten als wenn man die Distributionsversion checkt. Feature-Tests sind immer besser als Versions-Tests.
Der Grund warum es manchmal sinnvoll ist auch eine Distribution zu testen ist der, dass man offiziell nur diese oder jene Distribution supportet. Aber wenn man überall laufen will, einfach testen ob die passende Software vorhanden ist.
Dann kann man auch leicht dem User sagen was fehlt. Und die ganzen Forks von Distributionen kann man eh nie alle checken - das ist zuviel Aufwand.
-
Shade Of Mine schrieb:
Und .so Dateien liegen in einem der Pfade von $LD_LIBRARY_PATH sonst sind sie nicht korrekt installiert.
[] echo $LD_LIBRARY_PATH []
-
Jep, mein Fehler. LD_LIBRARY_PATH ist zum temporären überschreiben des System Paths. Aber prinzipiell ändert das nichts. Man checkt sowieso die Pfade nicht händisch und ob die .so Datei foo da ist, checke ich eh mit dlopen().