Thread Sysopen in Kombination mit seek/sysseek und print (12 answers)
Opened by Gast at 2007-06-25 11:09

sid burn
 2007-06-26 19:04
#77803 #77803
User since
2006-03-29
1520 Artikel
BenutzerIn

user image
Quote
Zu den erwähnten 4096 Bytes möchte ich noch hinzufügen, dass es sich
wohl um die Blöckgröße des Dateisystems handelt?! Es kann also von
Filesystem zu Filesystem variieren. Aber das ist die Größe, die Perl intern
eine Datei einliest, wenn readline() verwendet wird... readline($fh) und
<$fh> ist genau das gleiche.

Soweit wie ich mich an "Netzwerkprogrammierung in Perl" noch Erinnern kann, hängt die genaue Buffergröße von der libc ab.

Wenn du etwas einliest dann liest dann wird nie genau eine Zeile eingelesen, sondern immer mehr, und das ganze wird im RAM vorbehalten. Damit wird nicht mit jedem Aufruff von <$fh> z.B. wirklich erst genau dann eine Zeile ausgelesen und die Festplatte muss herum seeken (bzw. das Programm in der zeit warten, bis das OS erst die neuen Zeilen liefert).

Wieviel aber nun genau gebuffert wird hängt halt von der Implementierung des OS ab. Bei Linux und Co. also von der libc.\n\n

<!--EDIT|sid burn|1182870390-->
Nicht mehr aktiv. Bei Kontakt: ICQ: 404181669 E-Mail: perl@david-raab.de

View full thread Sysopen in Kombination mit seek/sysseek und print