Mailinglisten-Archive |
On Friday 20 February 2004 15:48, Thomas Richter wrote: > >Es muss aber einen geben. Denn, wenn PHP oder was auch immer eine Datei > >ausliest, muss es doch erkennen, wo EOF ist. > >Auf der ganz niederen Ebene also, muss es ein Byte (bzw. Byteabfolge) > > geben, welches die einzige Aufgabe hat, ein EOF zu markieren. Ich vermute > > hier das ASCII Steuerzeichen 0x18 "FS = file separator". (Entspricht der > > Bitfolge 00011000) > > wenn man sich das aber genau ueberlegt, bekommst du aber ein problem... > diese folge duerfte NIEMALS als daten innerhalb einer datei aufkommen... > und wie soll man sowas aussschliessen, dass in einem bild, oder einer > DB-Datei niemals diese folge auftritt... > > ich kann mich taeuschen... aber viel sinnvoller waere doch eigentlich, > dass man irgendwo (FAT) die dateigroesse und position speichert... > dadurch kann das betriebsystem (welches ja die dateien eigentlich fuer > php und jede andere applikation ausliesst) die komplette datei auch ohne > einen EOF marker auslesen... > Das ist ein Argument. Und während ich das vorherige schrieb, hatte ich schon sowas befürchtet. > der nachteil von dieser technik waere natuerlich, dass dateien immer in > einer groesse beschraenkt waeren... und zwar maximal mit der im > (FAT)datentyp fuer die dateigroesse darstellbaren bytes. und dies trifft > ja vermutlich auch immer zu (2-4 GB)... siehe auch > http://www.hardware-extrem.de/operatingsystem/dateisysteme/dateisysteme.htm >l unter "uebersicht". Muss ich mir mal genauer ankucken. Dann bleibt mir wohl vorerst nichts anderes übrig, als das überflüssige Ende der Datei mit NULL-Byte String zu überschreiben. Ab und zu wird dann die Datei durch Auslesen bis zum Ende der Nutzdaten und Schreiben in einer neuen Datei komprimiert. Wo die Nutzdaten enden, lässt sich aus den Angaben in der Datei errechnen. Nichtsdestotrotz, welche Bedeutung hat der ASCII - Hex - Wert 0x18 ? -- MfG Martin Rozmus martinrozmus at freenet.de
php::bar PHP Wiki - Listenarchive