Christian Kruse: Zeiger Wettrennen

Beitrag lesen

Hallo pl,

Das war ein Beispiel. Die Verwendung von fseek() findet z.B. dann Anwendung, wenn man nur Teile der Datei ändern oder auslesen will. Z.B. um einen Index zu durchsuchen oder um ein Datum in einer Datenbank-Datei zu ändern.

Das ist das was man eigentlich nicht machen sollte: Strukturen auf Dateiebene ändern. Und auch eine Suche ist effizienter wenn sie nicht auf Dateiebene sondern im Hauptspeicher ausgeführt wird. Kurzum: Random Access auf Dateiebene (dem Transport Layer!) abbilden zu wollen ist nicht nur Unfug sondern völlig ineffizient.

Aha. Du willst mir gerade weis machen, dass eine Datenbank erstmal 12 Gigabyte Daten auslesen soll um dann eine Reihe zu ändern und danach wieder 12 Gigabyte Daten zurückschreiben soll?

Du redest manchmal so einen unglaublichen Stuss. 🤦

Das ist keine Eigenheit von Perl, sondern von dem System-Call. Mit anderen Worten: fseek() verhält sich da gleich, weil es den gleichen System-Call verwendet. Unter Linux ist das lseek.

Ja, man lann auf diese Art und Weise einen ganzen Datenträger so löschen, daß etwaige vorher geschriebene Daten nicht wieder hergestellt werden könne.

Nein, das stimmt auch nicht.

LG,
CK