क्या यह कोई पोर्टेबल तरीका है (POSIX सिस्टम पर) यह निर्धारित करने के लिए कि फ़ाइल डिस्क्रिप्टर खोजने योग्य है या नहीं? मेरा विचार lseek(fd, 0, SEEK_CUR);
का उपयोग करना है और जांच करें कि वापसी मूल्य -1 है, लेकिन मुझे अनिश्चितता है अगर यह झूठी नकारात्मक या झूठी सकारात्मक दे सकती है। fstat
का उपयोग करके और इस बारे में धारणाएं बनाना कि किस प्रकार की फाइलें खोजने योग्य/अनुपयोगी हैं, यह एक अच्छा विचार नहीं है। कोई अन्य विचार?यह निर्धारित करने के लिए कि कोई फ़ाइल डिस्क्रिप्टर खोजने योग्य है या नहीं?
उत्तर
lseek
विधि उचित लगता है। यह निश्चित रूप से झूठी नकारात्मक नहीं हो सकता है - अगर ऐसा होता है, तो कार्यान्वयन के साथ कुछ गंभीरता से गलत है। इसके अलावा, POSIX spec के अनुसार, यह डिस्क्रिप्टर एक पाइप, फीफो या सॉकेट है, तो सैद्धांतिक रूप से आपके पास झूठी सकारात्मक नहीं होना चाहिए। एकमात्र शेष प्रश्न यह है कि चश्मा का पालन करने वाले विभिन्न सिस्टम कितनी अच्छी तरह से हैं। हालांकि, यह किसी भी अन्य तरीकों की तरह लगता है, जो कुछ भी हो सकता है, निश्चित रूप से इससे कम पोर्टेबल होगा।
आप fstat() का उपयोग कर सकते हैं, फिर स्टेट स्ट्रक्चर के मोड फ़ील्ड पर S_ISREG मैक्रो का उपयोग यह जांचने के लिए कर सकता है कि यह एक नियमित फ़ाइल है या नहीं; एक नियमित फ़ाइल, per definiton, तलाश योग्य है जबकि एक "गैर-नियमित" (विशेष) फ़ाइल नहीं हो सकती है (मुझे नहीं पता कि क्या विशेष फाइलें भी तलाश योग्य हैं)।
लेकिन हाँ, lseek() और errno == ईएसपीआईपीई के वापसी मूल्य की जांच करना भी काम करना चाहिए। सिद्धांत रूप में, the effect of lseek() on devices which are incapable of seeking is implementation-defined, इसलिए नाक संबंधी डिमन्स से सावधान रहें।
- 1. यह निर्धारित करने के लिए कि डेटा फ़ाइल के बिना वैध टैर फ़ाइल है या नहीं?
- 2. यह निर्धारित करना कि एक पठनीय फ़ाइल डिस्क्रिप्टर एक पाइप
- 3. Win32 API यह निर्धारित करने के लिए कि कोई पथ सापेक्ष या पूर्ण है या नहीं?
- 4. यह निर्धारित करने के लिए कि कोई कुंजी एक अक्षर या संख्या है या नहीं?
- 5. यह निर्धारित करने के लिए कि कोई ऐप मूल या HTML5 है या नहीं?
- 6. यह निर्धारित करने के लिए कि कोई सिस्टम। डायग्नोस्टिक्स.प्रोसेस 32 या 64 बिट है या नहीं?
- 7. यह निर्धारित करने के लिए कि कोई नेटवर्क पथ उपलब्ध है या नहीं (ऑनलाइन या ऑफ़लाइन)?
- 8. यह निर्धारित करने के लिए कि उपयोगकर्ता ने फ़ाइल अपलोड के लिए कोई फ़ाइल चुनी है या नहीं?
- 9. यह निर्धारित करने के लिए कि कोई भाषा रिकर्सिव या रिकर्सिव रूप से गणना योग्य है या नहीं?
- 10. यह जांचने के लिए कि कोई तत्व ड्रॉप करने योग्य, ड्रैग करने योग्य या अन्य 'ब्ली' है या नहीं?
- 11. यह निर्धारित करें कि कोई फ़ाइल
- 12. यह निर्धारित करने के लिए कि कोई पथ निर्देशिका के अंदर है या नहीं? (POSIX)
- 13. सी # .NET - यह निर्धारित करने के लिए कि निर्देशिका यूएसी के साथ या उसके बिना लिखने योग्य है या नहीं?
- 14. यह निर्धारित करने के लिए कि कोई वर्ग अन्य वर्ग का उप-वर्ग है या नहीं?
- 15. यह निर्धारित करने के लिए कि कोई स्ट्रिंग वैध चर नाम है या नहीं?
- 16. यह निर्धारित करने के लिए कि कोई फ़ील्ड फ़ोकस कर रहा है या नहीं?
- 17. यह निर्धारित करने के लिए कि कोई आदेशित सेट का सदस्य है या नहीं?
- 18. यह निर्धारित करने के लिए कि SQL सर्वर का कोई उदाहरण केस संवेदनशील है या नहीं
- 19. यह निर्धारित करने के लिए कि कोई होम स्क्रीन शॉर्टकट मौजूद है या नहीं?
- 20. यह निर्धारित करने के लिए कि कोई फ़ंक्शन खाली है या नहीं
- 21. यह निर्धारित करने के लिए कि कोई विशिष्ट DOM तत्व दिखाई दे रहा है या नहीं?
- 22. यह निर्धारित करने के लिए कि क्या elisp में कोई पैकेज स्थापित है या नहीं?
- 23. यह निर्धारित करने के लिए कि कोई प्रकार संग्रह का प्रकार है या नहीं?
- 24. यह निर्धारित करने के लिए कि कोई .NET प्रकार कस्टम संरचना है या नहीं?
- 25. यह निर्धारित करने के लिए कि कोई भाषा एलएल (1) है या नहीं?
- 26. यह निर्धारित करने के लिए कि कोई स्ट्रिंग मान्य JSON है या नहीं?
- 27. यह निर्धारित करने के लिए कि कोई ऑब्जेक्ट जावास्क्रिप्ट में एक वस्तु शब्दशः है या नहीं?
- 28. यह निर्धारित करने के लिए कि कोई विंडोज एप्लिकेशन ऑफस्क्रीन है या नहीं?
- 29. jQuery - यह निर्धारित करने के लिए कि कोई मूल तत्व मौजूद है या नहीं?
- 30. यह निर्धारित करने के लिए कि कोई पथ किसी अन्य की उपनिर्देशिका है या नहीं?
हार्ड ड्राइव जैसे ब्लॉक डिवाइस, खोजने योग्य हो सकते हैं। शायद चरित्र उपकरण भी, लेकिन मुझे यकीन नहीं है। – Thomas
कुछ डिवाइस जो वास्तव में खोजे जाने योग्य नहीं हैं, वे खोज में असफल नहीं होंगे (लिनक्स पर लीस पर, किसी ने खोज को विफल करने की कोशिश की लेकिन व्यवहार पर निर्भर उपयोगकर्ताओं के ऐप्स की खोज की ...) – Spudd86
सच; कुछ चरित्र डिवाइस ड्राइवर केवल तलाश() और चुपचाप वापस अनदेखा करते हैं। –