2010-05-04 22 views
5

मैं एक ऐसी प्रणाली तैयार कर रहा हूं जो फ़ाइल में समय श्रृंखला डेटा लिखेगा। डेटा 8 बाइट्स के ब्लॉक दो 4 बाइट भागों, समय और पेलोड में विभाजित है।क्या लिखें परमाणु परमाणु है?

एमएसडीएन के मुताबिक, लिखित फ़ाइल फ़ंक्शन परमाणु (http://msdn.microsoft.com/en-us/library/aa365747(VS.85).aspx) है, यदि लिखा गया डेटा आकार के किसी क्षेत्र से कम है।

चूंकि फ़ाइल में केवल इन ब्लॉकों (फ़ाइल की कोई "संरचना" नहीं है, इसलिए क्षतिग्रस्त फ़ाइल को पुनर्निर्माण करना संभव नहीं है), एक दूसरे के बाद एक जोड़ा गया, यह महत्वपूर्ण है कि पूरा ब्लॉक, या कुछ भी लिखा नहीं गया है फाइल को हर समय।

तो सवाल यह है कि, क्या मैंने इसे सही ढंग से समझा है कि आकार में किसी क्षेत्र से कम एक लिखित फ़ाइल पूरी तरह से डिस्क पर लिखी गई है या बिल्कुल लिखी नहीं है, इससे कोई फर्क नहीं पड़ता कि लिखने के लिए वास्तविक कॉल के दौरान क्या होता है?

उत्तर

6

लिखेंफाइल परमाणु है जब तक कि फ़ाइल फ़ाइल में किसी क्षेत्र की सीमा को पार नहीं करती है। तो यदि क्षेत्र का आकार 512 बाइट्स है, तो फाइल ऑफसेट 0 से शुरू होने वाले 20 बाइट लिखना परमाणु होगा, लेकिन फाइल ऑफसेट 500 पर लिखा गया वही डेटा परमाणु नहीं होगा। आपके मामले में लिखना परमाणु होना चाहिए, क्योंकि सेक्टर का आकार 8. का एकाधिक होना चाहिए।

This MSDN blog में ट्रांजेक्टेड एनटीएफएस का उपयोग किये बिना परमाणु बहु-क्षेत्रीय लेखन को कैसे करें, इस बारे में अधिक जानकारी है।

+0

क्या यह परमाणु है जब तक कि मशीन एक सनकी स्थिति में है? (यानी अगर प्रक्रिया क्रैश हो सकती है, लेकिन कर्नेल को एक अच्छी स्थिति में रखा जाता है, तो क्या यह परमाणु है?) – Mehrdad

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