अस्वीकरण: मैं मुख्य रूप से एक लिनक्स/वेब डेवलपर हूं।क्या हम कभी भी विंडोज़ में एक खुली फ़ाइल को हटाने में सक्षम होंगे?
विंडोज़ में यह "अच्छी" सुविधा है जहां यह किसी भी प्रक्रिया द्वारा खोले गए किसी भी फ़ाइल को हटाने की अनुमति से इनकार करता है। तो यदि कोई एंटीवायरस गलत समय पर गलत फ़ाइल को हिट करता है, तो कुछ यादृच्छिक प्रोग्राम गलत व्यवहार और संभवतः क्रैश हो सकता है।
क्या मैं सही हूँ? क्या इसे ठीक करने की योजना है?
क्या आप में से कोई भी यह स्वीकार्य लगता है, या, उस समय यह संभवतः एक अच्छा विचार कैसा लग सकता है?
संपादित करें:
यह यूनिक्स पर बहुत अलग ढंग से काम करता है, और दशकों के लिए इसलिए किया गया है।
एक उदाहरण के रूप:
- प्रक्रिया 1 पढ़ने के लिए, foo.txt खोलता है या लिखते हैं, या दोनों, कोई फर्क नहीं पड़ता
- प्रक्रिया 2 फ़ाइल
- फ़ाइल से अनलिंक करने के हटाता फाइल सिस्टम
- प्रक्रिया 1 पढ़ना और/या लिखना जारी रखता है, फ़ाइल अभी भी मौजूद है, और जब तक डिस्क पर कमरा होता है तब तक यह बढ़ सकता है। यह उन अन्य प्रक्रियाओं से बस पहुंच योग्य नहीं है जिनके पास पहले से ही फ़ाइल संभाल नहीं है।
- जब प्रक्रिया 1 फ़ाइल बंद कर देता है, है ना सुलभ से होगा कहीं भी
वास्तव में, यूनिक्स पर अस्थायी फ़ाइलों के लिए एक आम उपयोग पैटर्न है: खुले निकाल-पढ़ने/लिखने-पास।
एक फ़ाइल को हटाने के विरोध में, जो किसी अन्य प्रक्रिया को चेतावनी के साथ उपयोग नहीं करती है, जो निश्चित रूप से उस प्रोग्राम को गलत व्यवहार करने और संभावित रूप से क्रैश करने का कारण नहीं बनती है। अनलॉकर जैसे प्रोग्राम हैं जो आपको फ़ाइल हैंडल बंद करने की अनुमति देते हैं, लेकिन मैं नहीं देख सकता कि उपयोग में आने वाली फ़ाइल को कैसे हटाया जाना एक अच्छा विचार है। – IVlad
लेकिन, अगर कोई फ़ाइल 1 को संसाधित करने वाली फ़ाइल को हटा देता है, तो 1 गलत व्यवहार या क्रैश कैसे संसाधित कर सकता है?फ़ाइल अभी भी वहां है, इसे पढ़ा या लिखा जा सकता है, अगर आपके पास पहले से ही एक फ़ाइल हैंडल नहीं है तो यह उपलब्ध नहीं है। –
यह केवल कई दार्शनिक निर्णयों में से एक है जहां दो प्लेटफार्म अलग-अलग हैं। दोनों विधियों में उनके पेशेवर और विपक्ष होते हैं, हालांकि व्यक्तिगत रूप से मुझे किसी अन्य विधि की तुलना में बेहतर या खराब होने की विधि नहीं मिलती है। जब आप किसी प्लेटफ़ॉर्म के लिए विकसित होते हैं तो आपको इसकी idiosyncrasies से अवगत होना चाहिए और उन्हें उचित रूप से संभालना होगा। यदि आप ऐसा करने में विफल रहते हैं और आपका प्रोग्राम क्रैश हो जाता है तो आपका प्रोग्राम गलती पर है, मंच नहीं। – Luke