Handle

aus Wikipedia, der freien Enzyklopädie
(Weitergeleitet von Datei-Handle)
Wechseln zu: Navigation, Suche
Dieser Artikel erläutert den Informatikbegriff. Für den österreichischen Politiker siehe Albert Handle, für den Fußballspieler siehe Simon Handle.

Als Handle (englisch für Griff oder Henkel) bezeichnet man in der Informatik einen eindeutigen Referenzwert zu einer vom Betriebssystem verwalteten Systemressource, wie z. B. Bildschirmobjekte oder einzelnen Dateien auf Festplatten.[1][2][3] Wenn ein Anwendungsprogramm eine solche Ressource verwenden will, erhält es durch den Aufruf einer geeigneten Systemfunktion (zum Beispiel zum Öffnen oder Erzeugen von Dateien) als Rückgabewert die Referenz, die zur weiteren Verwendung der Ressource durch Systemfunktionen anzugeben ist (etwa zum Lesen aus einer Datei).

Das Betriebssystem prüft beim Öffnen einer Ressource die Zugriffsrechte, legt – falls benötigt – intern benötigte Verwaltungsstrukturen an und koordiniert weitere Zugriffsversuche anderer Anwendungen auf die betreffende Ressource. Gibt eine Anwendung die Ressource durch einen Schließen-Aufruf wieder frei, werden die Verwaltungsstrukturen wieder abgebaut, und die Handle wird ungültig.

Weitere Bezeichnungen, die je nach Verwendung auch eine speziellere Bedeutung erhalten, sind neben Handle (Microsoft Windows), Capability (akademisch) oder Deskriptor (POSIX). Die Terminologie ist über verschiedene Systeme hinweg nicht konsistent. Beispielsweise sind POSIX-Capabilities keine Referenzen auf konkrete Systemressourcen, sondern repräsentieren die Erlaubnis, eine gewisse Aktionen durchzuführen.[4]

Wenn es sich bei der betreffenden Systemressource um eine Datei handelt, wird das Handle auch als Datei-Handle, Dateideskriptor oder Dateizeiger (z. B. K&R C) bezeichnet.

Ein Handle verbindet die Identifikation einer Systemressource mit Zugriffsrechten. So kann zum Beispiel eine Anwendung, die eine Datei durch einen Systemaufruf mit Schreibrechten öffnet, durch Erhalt des Handles nachfolgend Schreiboperationen auf der Datei ausführen, indem das Handle als Ziel der Operation angegeben wird.

Das Prinzip lässt sich durch den Vergleich mit einem Geschäftszeichen im Schriftverkehr mit Ämtern veranschaulichen. Als Bürger erhält man nicht unmittelbaren Zugang zu den Unterlagen, sondern nimmt durch Angabe eines Geschäftszeichens Bezug auf den bisherigen Vorgang.

Datei-Handle[Bearbeiten]

In der Programmierung mit Assembler und anderen Programmiersprachen gibt es Funktionsaufrufe zum Öffnen oder Erstellen von Dateien, die eine ganze Zahl zurückgeben. Ist diese Zahl positiv, dann ist dies ein Handle auf eine Datei, den man anschließend für weitere Operationen mit der Datei verwenden kann.[5] In fast allen Implementierungen der Programmiersprache C für heutige PC-Betriebssysteme enthält jeder Wert des Typs FILE * einen Datei-Handle. Die Standard-Datenströme stdin, stdout und stderr enthalten dann als Handle die Werte 0,1 beziehungsweise 2. Dies ist jedoch nicht Bestandteil von Standard-C, sondern eine von UNIX-Betriebssystemen eingeführte und dann vielfach übernommene Konvention.[6]

Das NFS-Protokoll für Dateizugriffe über ein Netzwerk verwendet Datei-Handles zur Adressierung von Dateioperationen.

Weitere Bedeutungen[Bearbeiten]

In Matlab erzeugt das Voranstellen des @-Zeichens vor eine Funktion einen Funktions-Handle, der mit Funktionszeigern in C vergleichbar ist.[7]

Bei Windows ist HANDLE als Datentyp definiert, wobei weitere ressourcenspezifische Datentypen davon abgeleitet werden (z. B. HBITMAP oder HBRUSH).[8]

Handle-Systeme[9] dienen zur Vergabe und Verwaltung von Identifikatoren im World Wide Web, die auch als Handles bezeichnet werden. Ähnlich wie das Domain Name System stellt das Handle-System in diesem Sinne ein Verfahren zur Auflösung von Namensräumen dar. Eine entsprechende Anwendung von solchen Handles, die im deutschsprachigen Raum bekannter ist, sind Digital Object Identifiers. Ein weiteres System sind die Persistent Uniform Resource Locators.

Literatur[Bearbeiten]

  • Sam Sun, Larry Lannom, Brian Boesch: Handle System Overview. RFC 3650, November 2003.
  • Sam Sun, Sean Reilly, Larry Lannom: Handle System Namespace and Service Definition. RFC 3651, November 2003
  • Sam Sun, Sean Reilly, Larry Lannom, Jason Petrone: Handle System Protocol (ver 2.1) Specification. RFC 3652, November 2003

Weblinks[Bearbeiten]

Einzelnachweise[Bearbeiten]

  1.  Thomas W. Doeppner: Operating Systems In Depth: Design and Programming. John Wiley & Sons, November 2010, ISBN 0-471-68723-5, S. 20 (eingeschränkte Vorschau in der Google-Buchsuche).
  2. http://www.htl-steyr.ac.at/~morg/pcinfo/glossar/glos6o1f.htm Handles bei Windows (deutsch)
  3. http://stackoverflow.com/questions/902967/what-is-a-windows-handle Kurzbeschreibung (englisch)
  4.  Max Hailperin: Operating Systems And Middleware: Supporting Controlled Interaction. Cengage Learning, Inc, 2006, ISBN 978-0-534-42369-8, S. 242 ff. (eingeschränkte Vorschau in der Google-Buchsuche).
  5.  Richard Blum: Professional Assembly Language. Wrox, 2005, ISBN 0-7645-9561-X (eingeschränkte Vorschau in der Google-Buchsuche).
  6.  Peter Prinz, Ulla Kirch-Prinz: C: Einführung und professionelle Anwendung. S. 335 f. (eingeschränkte Vorschau in der Google-Buchsuche).
  7.  Aaron R. Bradley: Programming for Engineers. A Foundational Approach to Learning C and Matlab. Springer, 26. Oktober 2011, ISBN 3-642-23302-3, S. 204 (eingeschränkte Vorschau in der Google-Buchsuche).
  8. http://msdn.microsoft.com/en-us/library/windows/desktop/aa383751(v=vs.85).aspx Windows data types (englisch)
  9. The Handle System – Website der Corporation for National Research Initiative (englisch)