Ist HANDLE dem Dateideskriptor in Linux ähnlich? Soweit ich weiß, wird HANDLE verwendet, um alle Ressourcen unter Windows zu behandeln, wie zB Schriftart, Icons, Dateien, Geräte ..., die im Grunde nur ein void pointer-Punkt zu einem Speicherblock ist, der Daten einer bestimmten Ressource enthält. p>
Ja, Windows-Handles sind den Unix-Dateideskriptoren (FDs) sehr ähnlich.
Beachten Sie, dass ein HANDLE
kein Zeiger auf einen Speicherblock ist. Obwohl HANDLE
ist typedef
'd als void *
, das ist nur um es undurchsichtiger zu machen. In der Praxis ist ein HANDLE
ein Index, der in einer Tabelle nachgeschlagen wird, genau wie eine FD-Nummer.
Dieser Blogpost untersucht einige der Ähnlichkeiten und Unterschiede: Ссылка
Ja, sie sind konzeptionell ähnlich. Dateideskriptoren in Unix mappen ganze Zahlen in eine pro-process-Tabelle von Zeigern zu anderen Objekten (was auch andere Dinge als Dateien sein können). Dateideskriptoren sind jedoch nicht so einheitlich - einige Dinge existieren in einem separaten "Namespace" (z. B. Prozesszeitgeber). In dieser Hinsicht ist Windows mehr orthogonal - CloseHandle wird immer eine Ressource freigeben, unabhängig davon, was sie ist.
Tags und Links c++ windows file-descriptor