Einzelnen Beitrag anzeigen

QuickAndDirty

Registriert seit: 13. Jan 2004
Ort: Hamm(Westf)
2.052 Beiträge
 
Delphi 12 Athens
 
#1

AW: Wie geht das: TTY IO für Android

  Alt 20. Jun 2025, 10:55
Ich hoffe du hast damit Erfolg damit, aber wenn ich den Code nur mal kurz überfliege sieht mir das doch stark nach Halluzinationen aus. Zumindest "Androidapi.Log.d" wäre mir neu. Das ist normal in den FMX.Types drin und wird einfach nur mit log.d angesprochen.
Aber vielleicht ist ja ein Ansatz drin, der dich weiter bringt
ja fcntl ist im prinzip das ding was ich bräuchte oder?
und das zumindest existiert in Studio\23.0\source\rtl\posix\Posix.Fcntl.pas

Delphi-Quellcode:
{*******************************************************}
{                                                       }
{           CodeGear Delphi Runtime Library             }
{                                                       }
{ Copyright(c) 1995-2023 Embarcadero Technologies, Inc. }
{              All rights reserved                      }
{                                                       }
{   Copyright and license exceptions noted in source    }
{                                                       }
{*******************************************************}

unit Posix.Fcntl;

{$WEAKPACKAGEUNIT}
{$HPPEMIT NOUSINGNAMESPACE}

interface

uses Posix.Base, Posix.SysTypes;

(*$HPPEMIT '#include <fcntl.h>' *)
{$DEFINE IN_POSIXFCNTL}

{$IFDEF MACOS}
{$I osx/FcntlTypes.inc}
{$ELSEIF defined(LINUX)}
{$I linux/FcntlTypes.inc}
{$ELSEIF defined(ANDROID)}
{$I android/FcntlTypes.inc}
{$ENDIF}

{$I FcntlAPI.inc}


implementation

end.
und in FcntlAPI.inc
Delphi-Quellcode:
{*******************************************************}
{                                                       }
{           CodeGear Delphi Runtime Library             }
{                                                       }
{ Copyright(c) 1995-2023 Embarcadero Technologies, Inc. }
{              All rights reserved                      }
{                                                       }
{*******************************************************}

{$IFNDEF MACOS}
function openat(Handle: Integer; Path: MarshaledAString; Flags: Integer): Integer; cdecl; varargs;
  external libc name _PU + 'openat';
{$EXTERNALSYM openat}
{$ENDIF}

function __open(PathName: MarshaledAString; Flags: Integer): Integer; cdecl; varargs;
  external libc name _PU + 'open';
{$EXTERNALSYM __open}

function open(PathName: MarshaledAString; Flags: Integer): Integer; cdecl; varargs;
  external libc name _PU + 'open';
{$EXTERNALSYM open}
{ Do the file control operation described by CMD on FD.
   The remaining arguments are interpreted depending on CMD.  }


function fcntl(Handle: Integer; Command: Integer): Integer; cdecl; varargs;
  external libc name _PU + 'fcntl';
{$EXTERNALSYM fcntl}

function creat(Path: MarshaledAString; Mode: mode_t): Integer; cdecl
  external libc name _PU + 'creat';
{$EXTERNALSYM creat}
Von hier aus kann ich wahrscheinlich mit denen die mehr Ahnung von C und "Baudraten" haben zu einer Lösung kommen.

Also zumindest der Kern "öffnen einer Datei mit Baudrate" scheint verfügbar zu sein.
Andreas
Nobody goes there anymore. It's too crowded!

Geändert von QuickAndDirty (20. Jun 2025 um 10:59 Uhr)
  Mit Zitat antworten Zitat