Runtime Erkennung ob Windows oder Linux

Für Fragen von Einsteigern und Programmieranfängern...
Antworten
malabarista
Beiträge: 321
Registriert: Sa 11. Jun 2016, 12:16
OS, Lazarus, FPC: Linux Mint 18.1 L1.6.2-1 FPC 3.0.0
CPU-Target: 64Bit
Wohnort: Konstanz

Runtime Erkennung ob Windows oder Linux

Beitrag von malabarista »

ich habe ein Programm erstellt, welches sowohl unter Windows (in der Win-compilierten Version) als auch unter Linux (in der Linux-compilierten Version) laufen soll.
Wobei jeweils (Win/Linux) der gleiche Quellcode verwendet wird.

Nun sind ein paar Dinge unterschiedlich bei Windows und Linux: z.b. backslash statt slash bei Directories.
Kann ich at runtime in meinem Programm erkennen, ob es unter Windows oder Linux läuft ?
Oder gibt es einen Compilerswitch (z.B. if $Windows then...) ?

Denn ich möchte keinesfalls verschiedenen Quellcode für Windows oder Linux haben.

Warf
Beiträge: 2118
Registriert: Di 23. Sep 2014, 17:46
OS, Lazarus, FPC: Win10 | Linux
CPU-Target: x86_64

Re: Runtime Erkennung ob Windows oder Linux

Beitrag von Warf »

malabarista hat geschrieben:ich habe ein Programm erstellt, welches sowohl unter Windows (in der Win-compilierten Version) als auch unter Linux (in der Linux-compilierten Version) laufen soll.
Wobei jeweils (Win/Linux) der gleiche Quellcode verwendet wird.

Nun sind ein paar Dinge unterschiedlich bei Windows und Linux: z.b. backslash statt slash bei Directories.
Kann ich at runtime in meinem Programm erkennen, ob es unter Windows oder Linux läuft ?
Oder gibt es einen Compilerswitch (z.B. if $Windows then...) ?

Denn ich möchte keinesfalls verschiedenen Quellcode für Windows oder Linux haben.
Also statischer Compilerswitch:

Code: Alles auswählen

{$IFDEF UNIX}
{$ENDIF}
Einige dinge gibts schon wie PathDelim ein char der unter windows \ und unter unix /.

Wenn du es wirklich zur laufzeit brauchst versuch doch mit

Code: Alles auswählen

if PathDelim = '/' then // Unix
Quick and Dirty

malabarista
Beiträge: 321
Registriert: Sa 11. Jun 2016, 12:16
OS, Lazarus, FPC: Linux Mint 18.1 L1.6.2-1 FPC 3.0.0
CPU-Target: 64Bit
Wohnort: Konstanz

Re: Runtime Erkennung ob Windows oder Linux

Beitrag von malabarista »

Das sind jetzt drei gute Tipps auf einmal. Dankeschön !

mschnell
Beiträge: 3444
Registriert: Mo 11. Sep 2006, 10:24
OS, Lazarus, FPC: svn (Window32, Linux x64, Linux ARM (QNAP) (cross+nativ)
CPU-Target: X32 / X64 / ARMv5
Wohnort: Krefeld

Re: Runtime Erkennung ob Windows oder Linux

Beitrag von mschnell »

Da die für Linux übersetzte Version nicht auf Windows läuft und umgekehrt ist der statische {$if Switch immer die richtige Wahl.
-Michael

Antworten