本頁使用了標題或全文手工轉換

句柄

維基百科,自由的百科全書
前往: 導覽搜尋

程序設計中,句柄handle)是一種特殊的智能指針。當一個應用程序要引用其他系統(如數據庫操作系統)所管理的內存塊或對象時,就要使用句柄。

句柄與普通指針的區別在於,指針包含的是引用對象內存地址,而句柄則是由系統所管理的引用標識,該標識可以被系統重新定位到一個內存地址上。這種間接訪問對象的模式增強了系統對引用對象的控制。(參見封裝)。通俗的說就是我們調用句柄就是調用句柄所提供的服務,即句柄已經把它能做的操作都設定好了,我們只能在句柄所提供的操作範圍內進行操作,但是普通指針的操作卻多種多樣,不受限制。

在上世紀80年代的操作系統(如Mac OS[1]Windows)的內存管理中,句柄被廣泛應用。Unix系統的文件描述符基本上也屬於句柄。和其它桌面環境一樣,Windows API大量使用句柄來標識系統中的對象,並建立操作系統與用戶空間之間的通信渠道。例如,桌面上的一個窗體由一個HWND類型的句柄來標識。

如今,內存容量的增大和虛擬內存算法使得更簡單的指針愈加受到青睞,而指向另一指針的那類句柄受到冷淡。儘管如此,許多操作系統仍然把指向私有對象的指針以及進程傳遞給客戶端的內部數組下標稱為句柄。

參見[編輯]

參考文獻[編輯]

  1. ^ Hertzfeld, Andy, The Original Macintosh: Hungarian, January 1982 [2010-05-10]