N
codefrag schrieb:
Gibt es einen Buffer für Outputs (= z.B fwrite) und einen für Input (= z.B fgets) oder wird einer für alle Streamrichtungen benutzt?
ich nehme mal an für jeden FILE*, den man aufmacht, gibt's einen eigenen buffer.
bei 'reads' könnte es z.b. so ablaufen:
1. programm: fread(10 bytes) stdio: read(512 bytes), 10 bytes zum programm
2. programm: fread(20 bytes) stdio: 20 bytes zum programm
3. programm: fread(500 bytes) stdio: 482 bytes zum programm, read(512 bytes), 18 bytes zum programm
usw...
also immer so, dass die system-read funktion eine feste grösse liesst und somit der durchsatz maximiert wird.
aber vielleicht täusche ich mich auch. mal abwarten, vielleicht kann noch jemand was dazu schreiben...