मुझे पता है कि फ़ाइल फ़ाइल ऑपरेटर-बी का उपयोग कर सकते हैं यह जांचने के लिए कि फ़ाइल बाइनरी है या नहीं, लेकिन पर्ल इसे आंतरिक रूप से कैसे कार्यान्वित करता है?पर्ल को फाइल कैसे पता है बाइनरी है?
16
A
उत्तर
26
perldoc -f -B
से
:
-T
और-B
स्विच काम इस प्रकार है। फ़ाइल के पहले ब्लॉक या फ़ाइल की अजीब पात्रों जैसे अजीब नियंत्रण कोड या उच्च बिट सेट वाले वर्णों के लिए जांच की जाती है। यदि बहुत सारे अजीब वर्ण (> 30%) पाए जाते हैं, तो यह-B
फ़ाइल है; अन्यथा यह-T
फ़ाइल है। साथ ही, में शून्य वाले किसी भी फ़ाइल को पहली ब्लॉक को बाइनरी फ़ाइल माना जाता है। यदि-T
या-B
फ़ाइलहेडल पर उपयोग किया जाता है, तो मौजूदा आईओ बफर की पहली ब्लॉक की बजाय की जांच की जाती है।-T
और-B
दोनों फाइलें हैंडल परीक्षण करते समय पर एक शून्य फ़ाइल, याEOF
पर एक फ़ाइल पर वापस लौटें। क्योंकि आपको परीक्षण करने के लिए अवसरों पर फ़ाइल को पढ़ने के लिए-f
का उपयोग करना चाहते हैं, जैसा कि "next unless -f $file && -T $file
" में है।
10
पुस्तक सीखना पर्ल के अध्याय 11 के अनुसार:
जवाब है ** पर्ल धोखा देती है **: यह फ़ाइल को खोलता है, पहले कुछ हजार बाइट्स पर लग रहा है, और एक शिक्षित अनुमान बनाता है । यदि यह बहुत सारे शून्य बाइट्स, असामान्य नियंत्रण वर्ण, और उच्च बिट सेट के साथ बाइट्स देखता है, तो यह एक बाइनरी फ़ाइल की तरह दिखता है। अगर बहुत अजीब सामान नहीं है, तो यह पाठ की तरह दिखता है। कभी-कभी गलत लगता है। यदि किसी टेक्स्ट फ़ाइल में बहुत सारे स्वीडिश या फ़्रेंच शब्द होते हैं (जिनमें उच्च बिट सेट के साथ वर्णित वर्ण हो सकते हैं, कुछ आईएसओ -885 9-कुछ संस्करण, या शायद एक यूनिकोड संस्करण भी), तो यह बार्ल को बाइनरी घोषित करने में मूर्ख हो सकता है। तो यह सही नहीं है, लेकिन अगर आपको संकलित फाइलों से अपने स्रोत कोड को अलग करना है, या पीएनजी से एचटीएमएल फाइलों को अलग करना है, तो इन परीक्षणों को चाल चलनी चाहिए।
संबंधित मुद्दे
- 1. ओएस कैसे संकलित बाइनरी फाइल निष्पादित करता है?
- 2. बाइनरी लॉग फाइल विश्लेषण
- 3. पर्ल प्रोग्राम कैसे पता चलता है कि फ़ाइल को पर्ल मॉड्यूल युक्त फ़ाइल कहां मिलती है?
- 4. पर्ल एरे का पता लगा सकता है?
- 5. Mercurial क्यों लगता है कि मेरी एसक्यूएल फाइल बाइनरी हैं?
- 6. पर्ल और MongoDB बाइनरी डेटा
- 7. रूबी बाइट्स/बाइनरी को कैसे संभालता है?
- 8. फाइल-टेस्ट ऑपरेटर क्यों काम नहीं करता है (पर्ल)?
- 9. पर्ल में चर को कैसे जोड़ना है?
- 10. बाइनरी नल कैरेक्टर क्या है?
- 11. जावा फाइल सिस्टम में परिवर्तन का पता लगाता है
- 12. गिट क्यों सोचता है कि मेरी सीएस फाइल द्विआधारी है?
- 13. क्या एसवीएन बाइनरी सामग्री को संपीड़ित करता है?
- 14. पर्ल से तेज पर्ल है?
- 15. मैं पर्ल में एक फाइल कैसे फ्लश करूं?
- 16. मैं पर्ल में बाइनरी खोज कैसे कार्यान्वित कर सकता हूं?
- 17. मैं पर्ल में एक बाइनरी फ़ाइल कैसे बना सकता हूं?
- 18. बाइनरी के लिए कौन सी भाषा है, क्योंकि पर्ल टेक्स्ट है?
- 19. एएसपी.नेट एमवीसी एक फाइल कैसे लौटाती है?
- 20. पर्ल सबराउटिन में @_ कैसे काम करता है?
- 21. पर्ल आउटपुट खुद को ओवरराइट करता है
- 22. पायथन में बाइनरी फ़ाइल को कैसे खोज और जोड़ना है?
- 23. अंतिम बाइनरी से अप्रयुक्त तरीकों को कैसे बाहर निकालना है?
- 24. मशीन बाइनरी की व्याख्या कैसे करती है?
- 25. पर्ल पॉलीमोर्फिज्म कैसे काम करता है?
- 26. क्यों TortoiseHg लगता है Resource.h बाइनरी है?
- 27. फाइल सिस्टम में स्थित आईओएस ढांचे बाइनरी कहां हैं?
- 28. पर्ल में बाइनरी स्ट्रिंग में जोड़ने का सबसे आसान तरीका क्या है?
- 29. मैं जब एक फाइल डाउनलोड ASP.NET में पूरा कर लिया है कैसे पता लगा सकते हैं?
- 30. कैसे पता चलेगा कि फ़ाइल "फाइल-सिस्टम कैश में संग्रहीत है"
जादू स्टेट कैश चरित्र "_" का उपयोग करने का अवसर है: "अगली जब तक -फ $ फ़ाइल और -टी _" –