सरल उत्तर: क्योंकि यह इस तरह परिभाषित है।
लंबा उत्तर: यह इस तरह परिभाषित किया गया है क्योंकि कुछ ऑपरेशन वैचारिक रूप से सरल हैं:
- यदि किसी फ़ाइल में 20 अक्षर "A" हैं, और आप सभी "A" s हटाते हैं, तो फ़ाइल 20 बाइट्स छोटी हो जाएगी। एक फ़ाइल पर एक ही ऑपरेशन जिसमें सिर्फ "AAAAAAAAAAAAAAAAAAAAAA" शामिल था, एक लुप्त फ़ाइल के विशेष मामले से निपटना होगा।
- व्यावहारिक रूप से, किसी टेक्स्ट फ़ाइल की अंतिम पंक्ति को हटाने के लिए विशेष आवरण होना चाहिए।
- पाठ संपादक जो नियमित रूप से एक बैकअप बनाते हैं, को उस स्थिति से निपटने के लिए विशेष-केस कोड की आवश्यकता होगी जो उपयोगकर्ता अंतिम पंक्ति को हटा सकता है, दोपहर के भोजन पर जा सकता है, फिर वापस आकर दूसरी पंक्ति जोड़ सकता है। आगे की जटिलताएँ उत्पन्न होती हैं यदि कुछ अन्य उपयोगकर्ताओं ने उस समय में इस नाम से एक फ़ाइल बनाई।
आप और अधिक कार्य कर सकते हैं: * त्रुटि लॉग फाइलें खाली हो जाती हैं, यदि और केवल त्रुटि होने पर भरा जाना है। * यह पता लगाने के लिए कि कितनी त्रुटियां हुईं, आप लॉग फाइलों में लाइनों की संख्या गिनते हैं। यदि लॉग फ़ाइल खाली है, तो त्रुटियों की संख्या शून्य है, जो सही अर्थ बनाती है। * कभी-कभी आप उन फाइलों को देखते हैं जहां सभी प्रासंगिक पाठ फ़ाइल नाम में होते हैं, जैसे this-is-the-logging-directory
। यह इंस्टालेशन के बाद खाली निर्देशिकाओं को हटाने से अधिक व्यवस्थापकों को रोकता है, और यह उन बग्स को भी रोकता है जहां कोई प्रोग्राम या उपयोगकर्ता गलती से एक फाइल बनाता है जहां प्रोग्राम बाद में एक निर्देशिका देखना चाहता है। git
कार्यक्रम (और अन्य) खाली निर्देशिका ध्यान करते हैं, और एक परियोजना / व्यवस्थापक / उपयोगकर्ता एक रिकॉर्ड निर्देशिका मौजूद है कि भले ही यह कोई उपयोगी सामग्री (अभी तक) है है के लिए करना चाहता है, तो आप एक खाली फ़ाइल का नाम देख सकते हैंempty
या empty.directory
।
कोई भी ऑपरेशन अधिक जटिल नहीं होता है:
- कॉन्टेनेटिंग फाइलें: यह एक खाली फाइल के साथ सिर्फ एक ऑप है।
- किसी फ़ाइल में स्ट्रिंग की खोज करना: यह "यदि शब्द खोज शब्द से छोटा है, तो यह खोज शब्द समाहित नहीं कर सकता है" के मानक मामले से आच्छादित है।
- फ़ाइल से पढ़ना: प्रोग्राम को फ़ाइल के अंत से टकराने से निपटने की ज़रूरत है इससे पहले कि वे उम्मीद करते हैं, इसलिए फिर से एक शून्य-लंबाई फ़ाइल के मामले में प्रोग्रामर के लिए अतिरिक्त सोच शामिल नहीं है: वह सिर्फ एंड-ऑफ हिट करेगा -शुरुआत से।
फ़ाइलों के मामले में, "एक फ़ाइल कहीं दर्ज की गई है" पहलू (इनोड और / या फ़ाइल नाम) उपरोक्त विचारों के शीर्ष पर आता है, लेकिन फ़ाइल सिस्टम ऐसा नहीं करेगा यदि खाली फाइलें बेकार थीं।
सामान्य तौर पर, फ़ाइल नामों से संबंधित को छोड़कर उपरोक्त सभी कारण अनुक्रमों पर लागू होते हैं। अधिकांश विशेष रूप से स्ट्रिंग्स के लिए, जो वर्णों के अनुक्रम हैं: कार्यक्रमों के अंदर शून्य-लंबाई के तार आम हैं। स्ट्रिंग को आमतौर पर उपयोगकर्ता स्तर पर अस्वीकृत कर दिया जाता है यदि वे समझ में नहीं आते हैं: एक फ़ाइल नाम एक स्ट्रिंग है, और अधिकांश फ़ाइल सिस्टम फ़ाइल नाम के रूप में एक रिक्त स्ट्रिंग की अनुमति नहीं देते हैं; आंतरिक रूप से, टुकड़ों से फ़ाइल नाम बनाते समय, प्रोग्राम में एक टुकड़े के रूप में एक खाली स्ट्रिंग हो सकती है।