जवाबों:
एक प्रक्रिया संभाल एक पूर्णांक मान है जो विंडोज के लिए एक प्रक्रिया की पहचान करता है। Win32 API उन्हें एक HANDLE कहता है; विंडोज़ के हैंडल को HWND कहते हैं और मॉड्यूल HMODULE को हैंडल करते हैं।
प्रक्रियाओं के अंदर थ्रेड्स में एक थ्रेड हैंडल होता है, और फ़ाइलों और अन्य संसाधनों (जैसे रजिस्ट्री कुंजी) में हैंडल भी होता है।
टास्क मैनेजर में आपके द्वारा देखे जाने वाले हैंडल की गिनती " प्रक्रिया की ऑब्जेक्ट तालिका में ऑब्जेक्ट हैंडल की संख्या " है। वास्तव में, यह उन सभी हैंडल का योग है जो इस प्रक्रिया को खोलते हैं।
यदि आप किसी संसाधन के लिए अपने हैंडल को जारी नहीं करते हैं, तो अन्य लोग इसे एक्सेस करने में सक्षम नहीं हो सकते हैं - यही कारण है कि आप कभी-कभी एक फ़ाइल को हटा नहीं सकते हैं क्योंकि विंडोज का दावा है कि यह उपयोग में है ( हैंडल लीक और प्रोसेस एक्सप्लोरर पर इस लेख को देखें )।
साथ ही, विभिन्न हैंडल पर प्रति-प्रक्रिया सीमा है। यहाँ एक उदाहरण है ।
सामान्य तौर पर, यदि आप हैंडल खोल रहे हैं और उन्हें बंद नहीं कर रहे हैं, तो यह मेमोरी को लीक करने के लिए अनुरूप है। आपको पता लगाना चाहिए कि क्या चल रहा है और इसे ठीक करें। हैंडल लीक पर एक अच्छा कोडप्रोजेक्ट लेख है ।
हैंडल एक पूर्णांक मान है जिसका उपयोग किसी ऑब्जेक्ट को संबोधित करने के लिए किया जाता है। उदाहरण के लिए:
int handle = open( "foo.txt", OTHER_STUFF_HERE );
open()
सिस्टम कॉल बाद के सिस्टम कॉल (रीड (2), राइट (2), लेसेक (2), fcntl (2), आदि में उपयोग के लिए एक छोटा, गैर-नकारात्मक पूर्णांक देता है।
विंडोज हैंडल यूनिक्स फाइल डिस्क्रिप्टर (एफडी) के समान हैं।
open()
syscall को हटा दिया गया है - docs.microsoft.com/en-gb/cpp/c-runtime-library/reference/open