Einzelnen Beitrag anzeigen

Benutzerbild von Harry Stahl
Harry Stahl

Registriert seit: 2. Apr 2004
Ort: Bonn
2.494 Beiträge
 
Delphi 11 Alexandria
 
#1

String / MarshaledAString auf Linux-Platform verwenden

  Alt 13. Apr 2017, 18:42
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?
  Mit Zitat antworten Zitat