Zum Inhalt springen

Handle

aus Wikipedia, der freien Enzyklopädie

Vorlage:Hinweisbaustein

Als Handle (Skriptfehler: Ein solches Modul „Vorlage:lang“ ist nicht vorhanden. für „Griff“ oder „Henkel“) bezeichnet man in der Informatik einen eindeutigen Referenzwert zu einer vom Betriebssystem verwalteten Systemressource, wie z. B. Bildschirmobjekte oder einzelne Dateien auf Festplatten.<ref name="OsInDepth">Skriptfehler: Ein solches Modul „Vorlage:Literatur“ ist nicht vorhanden.</ref><ref><templatestyles src="Webarchiv/styles.css" />Vorlage:Webarchiv/WaybackSkriptfehler: Ein solches Modul „TemplatePar“ ist nicht vorhanden.Vorlage:Webarchiv/Wartung/URLSkriptfehler: Ein solches Modul „TemplUtl“ ist nicht vorhanden. Handles bei Windows (deutsch)</ref><ref>stackoverflow.com Kurzbeschreibung (englisch)</ref> 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).

Unter unixoiden Systemen erhalten Handles eine eindeutige ganzzahlige Nummer (Integerwert), die Filedescriptor genannt wird. Die Anzahl der möglichen Filedescriptoren ist begrenzt und kann beispielsweise mit dem Bash-Buildin Befehl ulimit -n eingestellt werden.

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 der 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 Aktion durchzuführen.<ref>Skriptfehler: Ein solches Modul „Vorlage:Literatur“ ist nicht vorhanden.</ref>

Wenn es sich bei der betreffenden Systemressource um eine Datei handelt, wird der Handle auch als Datei-Handle oder Dateideskriptor 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 der 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]

Für die systemnahe Programmierung stellen Betriebssysteme Funktionen zum Öffnen oder Erstellen von Dateien bereit. Diese geben im Erfolgsfall eine ganze Zahl zurück, die eine Referenz auf einen Dateideskriptor (Datei-Handle) darstellt und die anschließend für weitere Operationen mit der Datei verwendet wird.<ref>Skriptfehler: Ein solches Modul „Vorlage:Literatur“ ist nicht vorhanden.</ref> In fast allen Implementierungen der Programmiersprache C für heutige Betriebssysteme erhalten die Standard-Datenströme stdin, stdout und stderr 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.<ref>Skriptfehler: Ein solches Modul „Vorlage:Literatur“ ist nicht vorhanden.</ref>

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 beispielsweise in C vergleichbar ist.<ref>Skriptfehler: Ein solches Modul „Vorlage:Literatur“ ist nicht vorhanden.</ref>

Im Windows-API ist HANDLE als Datentyp definiert, wobei weitere ressourcenspezifische Datentypen davon abgeleitet werden (z. B. HBITMAP oder HBRUSH).<ref>Windows data types. msdn.microsoft.com (englisch)</ref>

Ein Handle-System<ref>The Handle System – Website der Corporation for National Research Initiative (englisch)</ref> dient zur Vergabe und Verwaltung von Identifikatoren im World Wide Web, die auch als Handles bezeichnet werden. Ähnlich wie das Domain Name System stellt ein 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]

Weblinks[Bearbeiten]

Einzelnachweise[Bearbeiten]

<references />