Hello,
Ein Handle ist ein Index in eine Ressource-Tabelle. Das ist so eine frühe Art von Objektorientierung ;-)
Wo ist denn da was mit Objektorientierung?
Wie würdest Du es denn bezeichnen? Das Handle bezeichnet ein Filesystemobjekt, auf das die Methoden (handelbasierten Filesystemfunktionen) angewendet werden können, keine anderen!
In der Ressource-Tabelle stehen alle momentanen Eigenschaften zu dem Objekt vermerkt, also wo gerade der Satzzeiger steht, wie groß die Satzgröße ist, wie die Daten übersetzt werden sollen, wem das Handle gehört, usw.
Alle Filesystemfunktionen arbeiten nun mit dieser Ressourcetabelle und müssen sich deshalb von dort erst ein gültiges Handle anfordern:
Alle?
Nein, natürlich nur die handlebasierten. Sorry, ich hätte das gebetsmühlenartig nochmal wiederholen müssen. Sehe ich ein.
Der zweite Halbsatz bezieht sich doch wohl nur auf fopen() und ähnliche Initialisierungsfunktionen.
... und müssen ein gültiges Handle daraus benutzen, das vorher mit fopen() angefordert werden kann/muss.
die Funktionen fread() und fwrite() (und andere) können dann mit dem Handle arbeiten, solange es gültig ist.
Dazu müssen sie es aber explizit übergeben bekommen. Ist ja schließlich nicht objektorientiert (auch nicht im Frühstadium).
Das sehe ich anders!
Liebe Grüße aus dem schönen Oberharz
Tom vom Berg