Hallo,
was genau passiert eigentlich bei open bzw. in diesem Kontext fopen()?
da wird zunächst mal geprüft, ob die gewünschte Datei überhaupt existiert und zugänglich (Zugriffsrechte!) ist, und dann das Lesen vorbereitet.
Wird da nur eine Art Zeiger auf den Dateianfang einer Datei gesetzt und diese dann zum Lesen bzw. Schreiben geöffnet?
Ja. Der Vorgang ist vergleichbar damit, dass du vom Schreibtisch aufstehst, ein Buch im Regal suchst, es auf den Tisch legst und die erste Seite aufschlägst.
Sie wird also nicht direkt in den Speicher geladen?
Ganz bestimmt nicht. Vermutlich wird das Betriebssystem in Erwartung des folgenden Lesezugriffs schon mal die ersten paar Dateiblöcke in irgendwelche Zwischenspeicher laden[*]. Aber das ist zum Verstehen der internen Vorgänge nebensächlich.
So long,
Martin
[*] Bei sehr kleinen Dateien kann das bedeuten, dass sie nach fopen() schon komplett im Arbeitsspeicher liegen. Das ist aber nicht die Regel.
Einer aktuellen Erhebung zufolge sind zehn von neun Ehefrauen eifersüchtig auf ihren Mann.