İşlem tanıtıcısı nedir?


Yanıtlar:


25

İşlem tanıtıcısı, işlemi Windows'a tanımlayan bir tamsayı değeridir. Win32 API onlara bir HANDLE diyor; pencerelere tanıtıcılara HWND ve HMODULE modüllerine tanıtıcılar denir.

İşlemlerin içindeki iş parçacıklarının iş parçacığı tutamacı vardır ve dosyalar ve diğer kaynakların (kayıt defteri anahtarları gibi) de tutamaçları vardır.

Görev Yöneticisi'nde gördüğünüz tanıtıcı sayısı " işlemin nesne tablosundaki nesne tanıtıcılarının sayısı " dır . Aslında, bu işlemin açık olduğu tüm tanıtıcıların toplamıdır.

Tanıtıcıyı bir kaynağa bırakmazsanız, diğer kişiler ona erişemeyebilir - bu nedenle Windows kullanımda olduğunu iddia ettiği için bazen bir dosyayı silemezsiniz ( tanıtıcı sızıntıları ve İşlem Gezgini hakkındaki bu makaleye bakın ).

Ayrıca, çeşitli tutamaçlarda işlem başına bir sınır vardır. İşte bir örnek .

Genel olarak, tanıtıcıları açıyorsanız ve bunları kapatmıyorsanız, sızdıran belleğe benzer. Neler olduğunu anlamalı ve düzeltmelisiniz. Tanıtıcı sızıntıları hakkında iyi bir CodeProject makalesi var .


2

Tanıtıcı, Nesneleri adreslemek için kullanılan bir tamsayı değeridir. Örneğin:

int handle = open( "foo.txt", OTHER_STUFF_HERE );

open() Sistem Çağrısı, sonraki sistem çağrılarında (read (2), write (2), lseek (2), fcntl (2), vb.) kullanmak için bir tanıtıcı, küçük, negatif olmayan bir tam sayı döndürür.

Windows tanıtıcıları Unix dosya tanıtıcılarına (FD) çok benzer.


Windows open()sistem çağrısı kullanımdan kaldırıldı - docs.microsoft.com/en-gb/cpp/c-runtime-library/reference/open
yoniLavi
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.