Ist HANDLE dem Dateideskriptor in Linux ähnlich?

8

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>     

Amumu 01.11.2011, 10:04
quelle

3 Antworten

10

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: Ссылка

    
Mark Seaborn 24.05.2015, 21:07
quelle
3

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.

    
zvrba 01.11.2011 11:11
quelle
0

A HANDLE ist ein ungültiger Zeiger

%Vor%

Windows-Datentypen

    
Steven Penny 30.07.2012 03:03
quelle

Tags und Links