symlink Ziel finden ?

Antworten
Benutzeravatar
af0815
Lazarusforum e. V.
Beiträge: 6216
Registriert: So 7. Jan 2007, 10:20
OS, Lazarus, FPC: FPC fixes Lazarus fixes per fpcupdeluxe (win,linux,raspi)
CPU-Target: 32Bit (64Bit)
Wohnort: Burgenland
Kontaktdaten:

symlink Ziel finden ?

Beitrag von af0815 »

Ich möchte auslesen, wohin ein symlink zeigt. Ichhabe zum Beispiel ein Device anlegen lassen das "/dev/ttyReader" heisst, aber ein symlink auf "/dev/ttyUSB0" oder einen anderen USB Device ist. Ich weis also nicht welches das richtige Gerät ist. Dazu kann ich nur fragen, auf welches Gerät der Symlink gerade zeigt.

Der Hintergrund: Das Gerät hat öfters die EIgenschaft, das es sich unvermutet vom System abmeldet und nach kurzer Zeit wieder anmeldet. Dadurch das ich aber die Schnittstelle offen habe, bekommt es klarerweise einen neuen Namen. Ist das Gerät weg, so muss ich die Verbindung schliessen und neu aufbauen. Damit ich baer weis, wo das Gerät gerade gelandet ist, brauche ich die Info waus dem symlink. Weil direkt über den Symlink darf ich es nicht öffnen, sonst ist der auch blockiert und das finden des Gerätes über den Devicetree ist nicht ganz lustig (zumindest nicht für mich - Wenn es dazu Hilfen gibt - bitte um Hinweise). So könnte ich im Symlink nachsehen, wo das Gerät gerade ist und den richtigen Ort wieder öffnen.

Edit: fpreadlink ist in der unit baseunix vorhenden. https://www.freepascal.org/docs-html/rt ... dlink.html

Jetzt bleibt nur offen, ob wer mir beim Devicetree ein paar Denkanstöße geben kann.
Blöd kann man ruhig sein, nur zu Helfen muss man sich wissen (oder nachsehen in LazInfos/LazSnippets).

PascalDragon
Beiträge: 834
Registriert: Mi 3. Jun 2020, 07:18
OS, Lazarus, FPC: L 2.0.8, FPC Trunk, OS Win/Linux
CPU-Target: Aarch64 bis Z80 ;)
Wohnort: München

Re: symlink Ziel finden ?

Beitrag von PascalDragon »

Falls es mal in Zukunft relavant sein sollte: es gibt auch die Cross Plattform Variante FileGetSymLinkTarget aus der Unit SysUtils.
FPC Compiler Entwickler

Antworten