Irgendwie stehe ich gerade auf dem Schlauch:
In Delphi 10.2 wird unter der Platform Linux64 ja kein Ansistring mehr unterstützt.
In den Posix.stdlib ist die _system wie folgt deklariert:
Delphi-Quellcode:
function _system(Name: MarshaledAString): Integer; cdecl;
external libc name _PU + 'system';
MarshaledAString ist aber _PAnsiChr.
Wie benutzte ich jetzt die _System funktion?
Während
_System ('gedit /home/harry/.config/PCN_RS/Accesslist.txt');
funktioniert, funktioniert dagegen NICHT:
Delphi-Quellcode:
Var
s: string;
begin
s := 'gedit /home/harry/.config/PCN_RS/Accesslist.txt';
_System (MarshaledAstring (s));
Es kommt dann die Fehlermeldung "g: not found", was also darauf hindeutet, dass nur der erste Buchstabe des übergebenen Strings verwertet wurde.
Unter MAC
OS funktioniert es übrigens mit
_system(PAnsiChar (AnsiString (s)));
Wie muss ich das für Linux64 richtig konvertieren?