


लिनक्स में CopyRead को समझना: डुप्लिकेट फ़ाइल डिस्क्रिप्टर से पढ़ने के लिए एक सुविधा
CopyRead लिनक्स में एक सुविधा है जो एक प्रक्रिया को फ़ाइल डिस्क्रिप्टर से पढ़ने की अनुमति देती है जिसे किसी अन्य प्रक्रिया से डुप्लिकेट (कॉपी) किया गया है। यह सुविधा लिनक्स संस्करण 2.2 में पेश की गई थी और अभी भी ऑपरेटिंग सिस्टम के मौजूदा संस्करणों में उपलब्ध है। बल्कि एक अलग फ़ाइल डिस्क्रिप्टर जो उसी खुली फ़ाइल को संदर्भित करता है। मूल फ़ाइल डिस्क्रिप्टर खुला रहता है और अन्य प्रक्रियाओं द्वारा उसी फ़ाइल को पढ़ने या लिखने के लिए उपयोग किया जा सकता है। कॉपीरीड एक प्रक्रिया को फ़ाइल डिस्क्रिप्टर से पढ़ने की अनुमति देता है जिसे किसी अन्य प्रक्रिया से डुप्लिकेट किया गया है, भले ही मूल प्रक्रिया पहले ही बंद हो चुकी हो फ़ाइल डिस्क्रिप्टर. यह उन स्थितियों में उपयोगी है जहां एक प्रक्रिया को किसी अन्य प्रक्रिया द्वारा अभी भी खुली हुई फ़ाइल से पढ़ने की आवश्यकता होती है, लेकिन मूल प्रक्रिया अब नहीं चल रही है या फ़ाइल से पढ़ने में सक्षम नहीं है। उदाहरण के लिए, मान लें कि प्रक्रिया ए एक फ़ाइल खोलती है और फिर `dup` का उपयोग करके फ़ाइल डिस्क्रिप्टर को डुप्लिकेट करता है। प्रोसेस ए द्वारा मूल फ़ाइल डिस्क्रिप्टर को बंद करने के बाद भी प्रोसेस बी डुप्लिकेट फ़ाइल डिस्क्रिप्टर से पढ़ सकता है। यह प्रक्रिया B को फ़ाइल से पढ़ना जारी रखने की अनुमति देता है, भले ही प्रक्रिया A का उपयोग समाप्त हो जाए।
यह ध्यान रखना महत्वपूर्ण है कि CopyRead केवल उन फ़ाइलों के लिए काम करता है जो रीड मोड में खुली हैं। यदि कोई फ़ाइल राइट मोड में खुली है, तो डुप्लिकेट फ़ाइल डिस्क्रिप्टर फ़ाइल से पढ़ने में सक्षम नहीं होगा। इसके अतिरिक्त, यदि कोई फ़ाइल पढ़ने और लिखने दोनों मोड में खुली है, तो डुप्लिकेट फ़ाइल डिस्क्रिप्टर फ़ाइल से केवल तभी पढ़ पाएगा जब वह रीड मोड में भी खुला हो।



