2014-09-20 3 views
9

FILE_ATTRIBUTE_NORMAL (0x80) और 0 CreateFile फ़ंक्शन को पास करने के बीच क्या अंतर है?FILE_ATTRIBUTE_NORMAL और 0 के बीच क्या अंतर है?

+2

@ जॉन: मुझे नहीं लगता कि यह इसका एक डुप्लिकेट है। वह सवाल पूछता है कि '0' क्या करता है। यह प्रश्न पूछता है कि '0' और' FILE_ATTRIBUTE_NORMAL' का उपयोग करने के बीच क्या अंतर है। (जिसका उत्तर वहां दिए गए उत्तरों द्वारा नहीं दिया गया है।) –

+4

मुझे वास्तव में जानने में दिलचस्पी होगी ** क्यों ** एक 'FILE_ATTRIBUTE_NORMAL' है) यानी क्यों ध्वज का अर्थ है "कोई झंडे सेट नहीं है" जब यह 0 है करेंगे)। संभवतः ऐतिहासिक लेकिन मुझे कुछ भी नहीं मिला जो इसे समझाता है। –

+0

यदि यह ऐतिहासिक है और कोई कारण नहीं जानता तो मैं इसके बारे में रेमंड चेन ब्लॉग पोस्ट पढ़ना चाहता हूं। क्या कोई उसे लिखने के लिए कह सकता है? :) – vkrzv

उत्तर

6

CreateFile() के लिए MSDN पृष्ठ से:

नोट जब CreateFile किसी मौजूदा फ़ाइल को खोलता है, यह आम तौर पर मौजूदा फ़ाइल के फ़ाइल विशेषताओं के साथ फ़ाइल झंडे किसी भी फ़ाइल विशेषताओं भाग के रूप में आपूर्ति की जोड़ती है, और ध्यान नहीं देता dwFlagsAndAttributes का।

या इसे एक और तरीका रखने के लिए, आप एक मान चाहते हैं जिसका अर्थ है कि जब आप मौजूदा फ़ाइल खोलते हैं तो "मुझे परवाह नहीं है"। क्योंकि ऑपरेटिंग सिस्टम परवाह नहीं है। वह मान 0.

1

FILE_ATTRIBUTE_NORMAL स्पष्ट रूप से कोई विशेषता सेट नहीं करता है। यदि आप 0 पास करते हैं, तो गुणों का सेट अनिर्दिष्ट है।

संबंधित मुद्दे