Ich habe ein Programm, das sehr große Textdateien liest und schreibt. Wegen des Formats dieser Dateien (sie sind ASCII-Darstellungen von Binärdaten) sind diese Dateien jedoch sehr leicht komprimierbar. Zum Beispiel haben einige dieser Dateien eine Größe von mehr als 10 GB, aber gzip erreicht eine Komprimierung von 95%.Wie kann ich eine Datei transparent komprimieren/dekomprimieren, während ein Programm in diese schreibt/liest?
Ich kann das Programm nicht ändern, aber Speicherplatz ist wertvoll, also muss ich einen Weg einrichten, dass es diese Dateien lesen und schreiben kann, während sie transparent komprimiert und dekomprimiert werden.
Das Programm kann nur Dateien lesen und schreiben, so weit ich es verstehe, muss ich eine benannte Pipe für die Eingabe und Ausgabe einrichten. Einige Leute schlagen stattdessen ein komprimiertes Dateisystem vor, was auch so aussieht, als würde es funktionieren. Wie kann ich arbeiten?
Technische Informationen: Ich bin auf einem modernen Linux. Das Programm liest eine separate Eingabe- und Ausgabedatei. Es liest die Eingabedatei der Reihe nach zweimal durch. Es schreibt die Ausgabedatei der Reihe nach.
Fühlen Sie sich frei, meine Tags zu bearbeiten. Ich fand es sehr schwierig, geeignete auszuwählen. Auch, wenn dies ein Duplikat ist, wie immer, lassen Sie es mich wissen und ich werde gerne löschen ... –
Dies ist nicht mit der Programmierung verwandt, da Sie Ihr Programm nicht ändern können. Sie benötigen entweder größere Festplatten oder ein r/w-komprimiertes Dateisystem. – Alnitak