में फ़्लश किया गया है, मेरे पास कुछ बड़ी, बड़ी फ़ाइलें हैं जिनके साथ मैं काम करता हूं और मैं उन्हें एक्सेस करने के लिए कई अलग-अलग I/O फ़ंक्शंस का उपयोग करता हूं। सबसे आम एक bigmemory
पैकेज है।यह जांचना कि क्या बफर को आर
फ़ाइलों को लिखते समय, मैंने आउटपुट बफर को फ्लश करने का कठिन तरीका सीखा है, अन्यथा सभी शर्त इस बात से दूर हैं कि डेटा सहेजा गया था या नहीं। हालांकि, इससे कुछ बहुत लंबे इंतजार हो सकते हैं जबकि bigmemory
इसकी बात (कई मिनट) करता है। मुझे नहीं पता कि ऐसा क्यों होता है - यह हमेशा नहीं होता है और इसे आसानी से पुन: उत्पन्न नहीं किया जाता है।
क्या यह निर्धारित करने का कोई तरीका है कि आई/ओ बफर आर में विशेष रूप से bigmemory
के लिए फ़्लश किए गए हैं या नहीं? यदि ऑपरेटिंग सिस्टम मायने रखता है, तो उस तरह से जवाब को बाधित करने के लिए स्वतंत्र महसूस करें।
यदि उत्तर bigmemory
से अधिक सामान्यीकृत किया जा सकता है, तो यह बहुत अच्छा होगा, क्योंकि कभी-कभी मैं अन्य मेमोरी मैपिंग फ़ंक्शंस या I/O स्ट्रीम पर भरोसा करता हूं।
यदि बफरों को फिसलने के लिए जांच करने के लिए कोई अच्छा समाधान नहीं है, तो ऐसे मामले हैं जिनमें यह माना जा सकता है कि बफर फ़्लश किए गए हैं? अर्थात। flush()
का उपयोग करने के अलावा।
अद्यतन: मुझे यह स्पष्ट करना चाहिए कि ये सभी बाइनरी कनेक्शन हैं। @RichieCotton ने नोट किया कि isIncomplete()
, हालांकि सहायता दस्तावेज़ केवल टेक्स्ट कनेक्शन का उल्लेख करता है। यह स्पष्ट नहीं है कि यह बाइनरी कनेक्शन के लिए उपयोग योग्य है।
'bigmemory' के साथ उपयोग के बारे में निश्चित नहीं है, लेकिन नियमित कनेक्शन के लिए' iscompleple' काम करता है। –
धन्यवाद! कनेक्शन पर बहुत सीमित सहायता जानकारी केवल उल्लेख करती है कि iscompleple टेक्स्ट कनेक्शन के आउटपुट के लिए उपयुक्त है। क्या आपके पास बाइनरी कनेक्शन के साथ भाग्य है? – Iterator